概念
作用: 返回一个新的 RDD, 该 RDD 是由原 RDD 的每个元素经过函数转换后的值而组成. 就是对 RDD 中的数据做转换.
def map[U: ClassTag](f: T => U): RDD[U] = withScope {
功能说明:
参数f是一个函数,它可以接收一个参数,当某个RDD执行map方法的时候,会遍历该RDD中的每一个数据项,并依次应用f函数,从而产生一个新的rdd. 即这个新的rdd中每一个元素都是原来的rdd中每个元素依次执行f函数而得到的结果.
案例
import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}
object Spark06_Transformation_map {
def main(args: Array[String]): Unit = {
//创建SparkConf并设置App名称
val conf: SparkConf = new SparkConf().setAppName("SparkCoreTest").setMaster("local[*]")
//创建SparkContext,该对象是提交Spark App的入口
val sc: SparkContext = new SparkContext(conf)
// 3.1 创建一个RDD
val rdd: RDD[Int] = sc.makeRDD(List(1,2,3))
// 3.2 调用map方法,每个元素乘以2
var newRDD = rdd.map(x => x*2)
//简写
// val newRDD: RDD[Int] = rdd.map(_*2)
// 3.3 打印修改后的RDD中数据
newRDD.collect().foreach(println)
// 关闭连接
sc.stop()
}
}