前言
上一章节我们了解到如何通过scala变成来统计一篇文章中的词频从而了解使用rdd当中函数使用,这篇我们进一步来学习熟练使用rdd函数,实现map自定义函数。
Spark-shell方式执行MaxAndMin map自定义函数
1 | 本地文件(hdfs文件)内容,最大值与最小值为:645,0 |
- textFile:通过内置的sc(SparkContext)对象调用textFile方法加载本地maxAndmin所有文件
- filter:对记录过滤,去掉空格记录
- map:通过map函数把本来只有一列的数据转换为(key,value)形式(因为spark的函数部分要求必须key,value形式,如:groupByKey,sortByKey,reduceByKey等),当中的tmpkey作为临时key,就是把所有数据分到一组
- groupByKey:通过groupByKey函数,就会把所有数据分到一组即(key,Array)数据结构
- map:通过自定义函数去寻找最大值与最小值(当中取值是通过一个元组的第二个value),最终只返回一个元组(tuple)数据结构的数据,包含最大值与最小值
- collect:最后收集然后再调用println函数标准输出
1 | scala> val lines = sc.textFile("file:///home/lishijia/Documents/spark/maxAndmin/*") |
总结
了解到filter,groupByKey等函数使用,并且实现map自定义函数即取最大值与最小值。
代码:https://github.com/lishijia/spark-scala-demo/tree/master/src/main/scala/lishijia/spark/demo