Spark入门-WordCount
来源:互联网 发布:车载导航一机多图软件 编辑:程序博客网 时间:2024/06/04 19:59
首先启动HDFS集群:
start-dfs.sh
然后启动Spark集群:
./sbin/start-all.sh
最后以让spark-shell运行在Spark集群上:
./bin/spark-shell
因为我这里是单机版的,所以是上面的输入,不需要指定端口号
假定你已经上传了一个文件到HDFS中,读取该文件:
val rdd=sc.textFile("/input/nihao")
使用count统计一下该文件的行数:
rdd.count
下面对该RDD进行cache操作并执行count使得缓存生效:
rdd.cacherdd.count
当你再次执行count时,你会发现时间变少了
对上面的rdd进行wordcount操作:
val wordcount =rdd.flatMap(x=>x.split(' ')).map(x=>(x,1)).reduceByKey((A,B)=>(A+B))
可以简写为:
val wordcount =rdd.flatMap(_.split(' ')).map(_,1).reduceByKey(_+_)
flatMap:将原来的RDD中的每个元素通过函数f转换为新的元素,并将生成的RDD的每个集合中的元素合并为一个集合。
x=>x.split(’ ‘) :x代表读进来的每一行,将其转换为根据空格切分后的单词组
map :是对每个数据项进行转换操作。x=>(x,1) 将每个单词变为key-value对,值为1
reduceByKey :对key-value对的value进行操作,将相同的key的两个值合并为新的值。
(A,B)=>(A+B) :将两个值相加
wordcount.collectwordcount.saveAsTextFile("/o")
从wordcount的的输出结果可以看出其执行结果是未经排序的,若要排序则可以如下:
val wordcount =rdd.flatMap(x=>x.split(' ')).map(x=>(x,1)).reduceByKey((A,B)=>(A+B)).map(x=>(x._2,x._1)).sortByKey(false).map(x=>(x._2,x._1)).saveAsTextFile("/o3")
x=>(x._2,x._1) :x已经是key-value对类型了,此操作是将它的key,value调换一下
sortByKey :此函数是根据key进行排序,false是降序,不填是升序
上一步做完之后,要将key,value再次调换一下
0 0
- spark入门之wordcount
- Spark入门-WordCount
- Spark入门之WordCount
- Spark入门的WordCount
- spark入门实例 wordCount
- Spark 入门经典 WordCount 单机/伪分布式
- spark入门wordcount详解(JAVA)
- spark程序入门-wordCount详解总结
- spark(1)-入门spark之scala sbt wordcount实验
- spark(2)-入门spark之java maven wordcount实验
- spark-wordcount
- Spark-wordcount
- wordcount spark...
- wordCount spark
- spark wordcount
- Spark WordCount
- spark wordcount
- Spark WordCount
- 手机分辨率和webapp分辨率的关系
- 自动布局。
- Spring框架使用作业任务调度Quartz
- [LeetCode][Java] Text Justification
- 也谈jconsole tomcat内存监控设置
- Spark入门-WordCount
- 安装gcc-4.8.2时遇到的问题及解决方案
- Android 使用ptrace查看其它进程的内存数据
- poj 3304
- Source Insight 使用方法入门
- UVA11988 Broken Keyboard (a.k.a. Beiju Text)
- hdu 1565 网络流(EK算法)
- HDU 1715 大菲波数(高精度——加法)
- JavaScript 变量 作用域 内存