欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

SparkRDD算子--flatMap算子

程序员文章站 2022-06-02 11:22:38
...

语法

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 */ }

作用

类似于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

示意图

SparkRDD算子--flatMap算子