我的问题是我有这样一张桌子:
------------------------
A B C
------------------------
a1 b2 c1|c2|c3|c4
c1 | c2 | c3 | c4是由|。
分隔的一个值我的最终结果应如下所示:
---------
A B C
---------
a1 b1 c1
a1 b1 c2
a1 b1 c3
a1 b1 c4
我该怎么做?
由于
答案 0 :(得分:3)
这是你可以做的,split带管道的字符串和explode使用spark函数的数据
import org.apache.spark.sql.functions._
import spark.implicits._
val df = Seq(("a1", "b1", "c1|c2|c3|c4")).toDF("A", "B", "C")
df.withColumn("C", explode(split($"C", "\\|"))).show
输出:
+---+---+---+
| A| B| C|
+---+---+---+
| a1| b1| c1|
| a1| b1| c2|
| a1| b1| c3|
| a1| b1| c4|
+---+---+---+
希望这有帮助!