本文介绍了拆分字段并从一行 Spark-Scala 创建多行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我是新手,我需要帮助解决这个问题.
i am new and i need help with this issue.
我有一个这样的 csv 文件:
I have a csv file like this:
ANI,2974483123 29744423747 293744450542,Twitter,@ani
我需要拆分第二列2974483123 29744423747 293744450542"并像这样创建 3 行:
I need split the second column "2974483123 29744423747 293744450542" and create 3 rows like this:
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)) }
这篇关于拆分字段并从一行 Spark-Scala 创建多行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!