scala - 拆分字段并从一行 Spark-Scala 创建多行

标签 scala apache-spark

我是新手,我需要帮助解决这个问题。

我有一个这样的 csv 文件:

ANI,2974483123 29744423747 293744450542,Twitter,@ani

我需要拆分第二列“2974483123 29744423747 293744450542”并创建 3 行,如下所示:

ANI,2974483123,Twitter,@ani

ANI,29744423747,Twitter,@ani

ANI,293744450542,Twitter,@ani

有人可以帮助我吗?请!

最佳答案

flatMap 是您要查找的内容:

val input: RDD[String] = sc.parallelize(Seq("ANI,2974483123 29744423747 293744450542,Twitter,@ani"))
val csv: RDD[Array[String]] = input.map(_.split(','))

val result = csv.flatMap { case Array(s1, s2, s3, s4) => s2.split(" ").map(part => (s1, part, s3, s4)) }

关于scala - 拆分字段并从一行 Spark-Scala 创建多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35733054/

相关文章:

scala - Play Framework 2.0 : Store values in Http. 上下文

scala - 如何为 Scala 3 枚举创建通用方法

Scala Else 返回函数

scala - Intellij IDEA : Why build. sbt 以红色突出显示?

java - 将 Java 泛型转换为 Scala

json - 在 Spark 中快速处理 json 文件的方法

apache-spark - 未找到 Spark 驱动器

apache-spark - 非分区 Parquet 数据的谓词下推

apache-spark - 如何在 Spark 中按分区对键/值进行分组?

scala - spark dataframe 转换为 rdd 需要很长时间