语法
val newRdd = oldRdd.flatMap(func)
源码
def flatMap[U](f : scala.Function1[T, scala.TraversableOnce[U]])(implicit evidence$4 : scala.reflect.ClassTag[U]) : org.apache.spark.rdd.RDD[U] = { /* compiled code */ }
- 1
作用
类似于map,但是每一个输入元素可以被映射为0或多个输出元素(所以func应该返回一个序列,而不是单一元素)
例子
package com.day1 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} object oper { def main(args: Array[String]): Unit = { val config:SparkConf = new SparkConf().setMaster("local[*]").setAppName("wordCount") // 创建上下文对象 val sc = new SparkContext(config) // flatMap算子 val listRdd:RDD[List[Int]] = sc.makeRDD(Array(List(1,2),List(3,4))) val tupleRdd: RDD[Int] = listRdd.flatMap(datas => datas) tupleRdd.collect().foreach(println) } } 输入: ([1,2],[3,4]) 输出: 1 2 3 4
示意图
Spark:flatMap
最新推荐文章于 2024-08-18 00:00:00 发布