Spark算子之map、flatMap

map(func):
源码

  /**
   * Return a new RDD by applying a function to all elements of this RDD.
   */
  def map[U: ClassTag](f: T => U): RDD[U] = withScope {
    val cleanF = sc.clean(f)
    new MapPartitionsRDD[U, T](this, (context, pid, iter) => iter.map(cleanF))
  }

作用 : 返回一个新的RDD,该RDD由每一个输入元素经过func函数转换后组成。

val arr: RDD[Int] = sc.makeRDD(Array(1, 2, 3, 4, 5))
val arrMap: RDD[Int] = arr.map(_ * 2)
val arrColl: Array[Int] = arrMap.collect()
for (aa <- arrColl) {
  	 print(aa + " ")
}

结果是:2 4 6 8 10

flatMap:
源码

  /**
   *  Return a new RDD by first applying a function to all elements of this
   *  RDD, and then flattening the results.
   */
  def flatMap[U: ClassTag](f: T => TraversableOnce[U]): RDD[U] = withScope {
    val cleanF = sc.clean(f)
    new MapPartitionsRDD[U, T](this, (context, pid, iter) => iter.flatMap(cleanF))
  }

作用:通过首先将函数应用于此RDD的所有元素,然后展平结果,返回新的RDD。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值