需求:将List(List(1,2),3,List(4,5))扁平化操作
package com.atguigu.bigdata.spark.core.operator.transform.test
import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}
object RDD_flatMap_03 {
def main(args: Array[String]): Unit = {
val sparkConf = new SparkConf().setMaster("local[*]").setAppName("Operator")
val sc = new SparkContext(sparkConf)
// TODO 算子 -flatMap - 扁平映射
// 只要返回的结果是一个可迭代的集合就满足要求
// 需求:将List(List(1,2),3,List(4,5))扁平化操作
val rdd = sc.makeRDD(List(List(1,2),3,List(4,5)))
val flatRDD: RDD[Any] = rdd.flatMap(
data => {
// 判断每一个元素的类型,如果是集合那就直接返回集合,如果不是那就转换为集合再返回
data match {
case list: List[_] => list
case _ => List(data)
}
}
)
flatRDD.collect().foreach(println)
sc.stop()
}
}