Spark SQL 中用逗号分隔的字符串爆炸列

ak1*_*k17 0 apache-spark apache-spark-sql

我有以下数据集

+----+-----------+
|col1|       col2|
+----+-----------+
|   1|val1, val2 |
|   2|val3, val4 |
+----+-----------+
Run Code Online (Sandbox Code Playgroud)

将所有值视为字符串现在我想将其转换为下面的数据集

+----+-----------+
|col1|       col2|
+----+-----------+
|   1|val1       |
|   1|val2       |
|   2|val3       |
|   2|val4       |
+----+-----------+
Run Code Online (Sandbox Code Playgroud)

我怎样才能实现这个目标?

Kom*_*owy 8

使用split将逗号分隔的值解析为数组,然后分解以将数组元素重新排列为单独的行。

df.withColumn("col2", explode(split($"col2", ","))).show
Run Code Online (Sandbox Code Playgroud)