概念

作用: 返回一个新的 RDD, 该 RDD 是由原 RDD 的每个元素经过函数转换后的值而组成. 就是对 RDD 中的数据做转换.

  1. def map[U: ClassTag](f: T => U): RDD[U] = withScope {

功能说明:
参数f是一个函数,它可以接收一个参数,当某个RDD执行map方法的时候,会遍历该RDD中的每一个数据项,并依次应用f函数,从而产生一个新的rdd. 即这个新的rdd中每一个元素都是原来的rdd中每个元素依次执行f函数而得到的结果.

案例

image.png

  1. import org.apache.spark.rdd.RDD
  2. import org.apache.spark.{SparkConf, SparkContext}
  3. object Spark06_Transformation_map {
  4. def main(args: Array[String]): Unit = {
  5. //创建SparkConf并设置App名称
  6. val conf: SparkConf = new SparkConf().setAppName("SparkCoreTest").setMaster("local[*]")
  7. //创建SparkContext,该对象是提交Spark App的入口
  8. val sc: SparkContext = new SparkContext(conf)
  9. // 3.1 创建一个RDD
  10. val rdd: RDD[Int] = sc.makeRDD(List(1,2,3))
  11. // 3.2 调用map方法,每个元素乘以2
  12. var newRDD = rdd.map(x => x*2)
  13. //简写
  14. // val newRDD: RDD[Int] = rdd.map(_*2)
  15. // 3.3 打印修改后的RDD中数据
  16. newRDD.collect().foreach(println)
  17. // 关闭连接
  18. sc.stop()
  19. }
  20. }