我在Scala中有一个使用Spark SQL的数据框,其中A和B列的值是:
setEnabled(false)
我需要以以下格式将输出存储到单个文本文件中
A | B
1 a|b|c
2 b|d
3 d|e|f
我该怎么做?
答案 0 :(得分:2)
您可以通过展开和拆分获得所需的数据框:
val resultDF = df.withColumn("B", explode(split($"B", "\\|")))
结果
+---+---+
| A| B|
+---+---+
| 1| a|
| 1| b|
| 1| c|
| 2| b|
| 2| d|
| 3| d|
| 3| e|
| 3| f|
+---+---+
然后,您可以将合并(1)保存在单个文件中
resultDF.coalesce(1).rdd.saveAsTextFile("desiredPath")
答案 1 :(得分:0)
您可以做类似的事情,
val df = ???
val resDF =df.withColumn("B", explode(split(col("B"), "\\|")))
resDF.coalesce(1).write.option("delimiter", " ").csv("path/to/file")