RDD Operator
RDD 2.4.5 Operator - CN
RDD Transaction Operator
RDD Transaction Operator 2.4.5 -CN
以下是常用的 RDD Transaction 转换算子列表。

下面分别给出这些算子的基本使用示例:
val list = List(1,2,3)
sc.parallelize(list).map(_ * 10).foreach(println)
// 输出结果: 10 20 30 (这里为了节省篇幅去掉了换行,后文亦同)
val list = List(3, 6, 9, 10, 12, 21)
sc.parallelize(list).filter(_ >= 10).foreach(println)
// 输出: 10 12 21
flatMap(func) 与 map 类似,但每一个输入的 item 会被映射成 0 个或多个输出的 items( func 返回类型需要为 Seq)。
val list = List(List(1, 2), List(3), List(), List(4, 5))
sc.parallelize(list).flatMap(_.toList).map(_ * 10).foreach(println)
// 输出结果 : 10 20 30 40 50
flatMap 这个算子在日志分析中使用概率非常高,这里进行一下演示:拆分输入的每行数据为单个单词,并赋值为 1,代表出现一次,之后按照单词分组并统计其出现总次数,代码如下:
val lines = List("spark flume spark", "hadoop flume hive")
sc.parallelize(lines)
.flatMap(line => line.split(" "))
.map(word =>(word,1))
.reduceByKey(_+_)
.foreach(println)
// 输出:
(spark,2)
(hive,1)
(hadoop,1)
(flume,2)