如何在scala数据框中分解两个数组列?

问题描述 投票:0回答:1

如果我只是执行下面的操作,我会得到每个主题重复的 4 行标记。谁能在这里指点一下来解决这个问题。

df.withColumn("subject", explode($"subject")).withColumn("mark", explode($"mark"))
scala apache-spark
1个回答
0
投票

您可以使用

arrays_zip
压缩两个数组,并使用
inline
内联分解数组列值。

df.select($"name", inline(arrays_zip($"subject", $"mark"))).show(false)
+----+-------+----+
|name|subject|mark|
+----+-------+----+
|abc |math   |40  |
|abc |english|50  |
+----+-------+----+

© www.soinside.com 2019 - 2024. All rights reserved.