在Spark中,对原始的RDD中的元素进行操作,例如乘法操作,操作前后,元素对应的值所在的分区不变。
package test.wyh.wordcount
import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}
object TestFlatMap {
def main(args: Array[String]): Unit = {
//建立Spark连接
val sparkConf = new SparkConf().setMaster("local").setAppName("TestWordCountApp")
val sc = new SparkContext(sparkConf)
//设置分区个数为2
val rdd = sc.makeRDD(List(1,2,3,4), 2)
//将原始RDD输出
rdd.saveAsTextFile("output1")
//将原始RDD中的元素值做乘2运算
val mapRDD = rdd.map(_ * 2)
//将操作后的值输出
mapRDD.saveAsTextFile("output2")
//关闭连接
sc.stop()
}
}
运行结果:
生成了两个目录,并在各自目录下根据我们的参数配置