package com.atguigu.bigdata.spark.core.operator.transform.test
import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}
object RDD_map_01 {
def main(args: Array[String]): Unit = {
val sparkConf = new SparkConf().setMaster("local[*]").setAppName("Operator")
val sc = new SparkContext(sparkConf)
// TODO 算子 -map
// 创建数据源
val rdd = sc.makeRDD(List(1, 2, 3, 4))
// 需求:把数据源中的元素*2
// 原:1,2,3,4
// 变:2,4,6,8
// 1.方案一
// map需要传递一个函数所以我们定义一个函数mapFunction
// def mapFunction(num:Int):Int={
// num*2
// }
// val mapRDD: RDD[Int] = rdd.map(mapFunction)
// mapRDD.collect().foreach(println)
// 2.方案二-简化-使用匿名函数
// val mapRDD: RDD[Int] =rdd.map((num:Int)=>{num*2})
// mapRDD.collect().foreach(println)
// 3.方案三-简化
// 当函数逻辑的代码只有一行的时候{}可以省略
// 如果参数的类型可以自动推断出来,类型可以省略
// 如果参数只有一个那么()可以省略
// 如果参数在逻辑当中只出现一次,而且是按顺序出现的那么参数可以使用_代替
// 结果为
val mapRDD: RDD[Int] = rdd.map(_ * 2)
mapRDD.collect().foreach(println)
sc.stop()
}
}
spark-map算子(1)
最新推荐文章于 2022-12-02 02:07:06 发布