理解和使用spark的flatMap的最好的一个例子


import org.apache.spark.sql.SparkSession


object Test {
  def main(args: Array[String]): Unit = {
    val spark = SparkSession.builder.appName("Test Application").enableHiveSupport().getorCreate()
    import spark.implicits._

    val data = Seq(("Java", "20000"), ("Python", "100000"), ("Scala", "3000"), ("Scala", "4000"))

    val rdd = spark.sparkContext.parallelize(data)
    val dfFromrDD = rdd.toDF("language","count")
    val result = dfFromrDD.rdd.flatMap(row=> {
      val language = row.getAs[String]("language")
      for(i <- language)yield{
        i
      }
    })

    for(item<-result.collect()){
      println(item)
    }

  }
}

print结果:
J
a
v
a
P
y
t
h
o
n
S
c
a
l
a
S
c
a
l
a

相关文章

1.SparkStreaming是什么?SparkStreaming是SparkCore的扩展A...
本篇内容介绍了“Spark通讯录相似度计算怎么实现”的有关知识...
本篇文章给大家分享的是有关如何进行Spark数据分析,小编觉得...
本篇内容主要讲解“Spark Shuffle和Hadoop Shuffle有哪些区别...
这篇文章主要介绍“TSDB的数据怎么利用Hadoop/spark集群做数...
本篇内容介绍了“Hadoop与Spark性能原理是什么”的有关知识,...