scala 编写wordCount
2017-03-06 23:23
375 查看
加载文件
reduceByKey(_+_).collect 将key相同元素合并(4出现一次,7出现4次,6出现3次,2出现2次,3出现3次,1出现3次)
这个方法也是同样效果
scala> f1.flatMap(x=>x.split("-")).map((_,1)).reduceByKey((x,y)=>x+y).collect
res18: Array[(String, Int)] = Array((4,1), (7,4), (6,3), (2,2), (3,3), (1,3))
对出现的次数进行排序
对出现的次数进行排序,所以要先将元素的第二个元组和第一个元组互换位置map(x=>(x._2,x._1)),这样出现的次数就成了key,然后再对key进行排序sortByKey(false)
再对排序后的结果,再一次的对他们的元组进行互换位置(次数,单词)换后(单词,次数)map(x=>(x._2,x._1))
互换位置也可以使用下面方式,
例
false:从大到小 降序
true:小小到大 升序
将结果保存到hdfs
查看结果
scala> var f1=sc.textFile("/tmp/dataTest/followers.txt")
scala> f1.flatMap(x=>x.split("-")).map((_,1)).collect //每个数字以'-'分割,并数字为key,给每个key赋值1 res10: Array[(String, Int)] = Array((2,1), (1,1), (4,1), (1,1), (1,1), (2,1), (6,1), (3,1), (7,1), (3,1), (7,1), (6,1), (6,1), (7,1), (3,1), (7,1))
reduceByKey(_+_).collect 将key相同元素合并(4出现一次,7出现4次,6出现3次,2出现2次,3出现3次,1出现3次)
scala> f1.flatMap(x=>x.split("-")).map((_,1)).reduceByKey(_+_).collect res12: Array[(String, Int)] = Array((4,1), (7,4), (6,3), (2,2), (3,3), (1,3))
这个方法也是同样效果
scala> f1.flatMap(x=>x.split("-")).map((_,1)).reduceByKey((x,y)=>x+y).collect
res18: Array[(String, Int)] = Array((4,1), (7,4), (6,3), (2,2), (3,3), (1,3))
对出现的次数进行排序
sortByKey
scala> var resText=f1.flatMap(x=>x.split("-")).map((_,1)).reduceByKey(_+_).map(x=>(x._2,x._1)).sortByKey(false).map(x=>(x._2,x._1)) resText: org.apache.spark.rdd.RDD[(String, Int)] = MapPartitionsRDD[39] at map at <console>:26
对出现的次数进行排序,所以要先将元素的第二个元组和第一个元组互换位置map(x=>(x._2,x._1)),这样出现的次数就成了key,然后再对key进行排序sortByKey(false)
再对排序后的结果,再一次的对他们的元组进行互换位置(次数,单词)换后(单词,次数)map(x=>(x._2,x._1))
互换位置也可以使用下面方式,
例
map{case (x._1, x._2) => (x._2, x._1)}.sortByKey(false)
false:从大到小 降序
true:小小到大 升序
将结果保存到hdfs
scala> resText.saveAsTextFile("/tmp/out/res")
查看结果
[root@node4 node4]# hdfs dfs -cat /tmp/out/res/part-00000 (7,4) (6,3) (3,3) (1,3) (2,2) (4,1) [root@node4 node4]#
相关文章推荐
- scala本地wordcount的程序编写
- scala编写wordCount
- 本地编写并运行scala(Wordcount)
- 使用Scala编写WordCount详细分析
- scala-eclipse 编写spark简单程序 WordCount
- idea利用scala编写wordcount 一些坑
- Scala用actor编写简单WordCount
- 利用Scala编写Wordcount并在spark框架下运行
- 第三周(JAVA编写的 wordcount)
- IDEA【基本配置1】配置SBT 和 scala 并在spark环境中进行wordcount测试(spark集群运行模式)
- 使用scala的Actor模拟计算多文件WordCount
- SPARK-Shell 用Scala执行WordCount
- mapreduce程序编写(WordCount)
- Scala入门学习之【wordcount】
- JDK8+Scala2.11+spark-2.0.0+Intellij2017.3.4开发wordcount程序并在集群中运行
- python、scala、java分别实现在spark上实现WordCount
- 编写自己的 wordcount (hadoop 1.0.3)
- 使用Pyspark编写wordcount程序
- Spark:用Scala和Java实现WordCount
- Scala入门学习之【wordcount】