版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/m0_37681914/article/details/71481272
简单的RDD操作
spark学习参考书籍 于俊老师的《Spark核心技术与高级应用》
操作文件样本: /opt/spark/README.md
1.获取数据
val textf = sc.textFile("file:/opt/spark/README.md")
2.读取第一行:
textf.first
3.获取所有项的计数
textf.count
4.抽取含有”Spark”的子集
textf.filter(line => line.contains("Spark"))
5.统计含有”Spark”的子集的项数
textf.filter(line => line.contains("Spark")).count
6.找出每行最多的单词数
textFile.map(line => line.split(" ").size).reduce((a,b) => if(a>b) a else b)
7.词频统计
textFile.flatMap(line => line.split(" ")).map(word => (word,1)).reduceByKey((a,b) => a + b).collect
简化:
textFile.flatMap(_.split(” “)).map((_,1)).reduceByKey(_+_).collect
8.增加排序
1) 按照key排序
textFile.flatMap(_.split(" ")).map((_,1)) .reduceByKey(_+_).sortByKey(true).collect
2) 按照value排序
textFile.flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_). map(x => (x._2,x._1)).sortByKey(false).map(x => (x._2,x._1)).collect