首页 > 解决方案 > 在 Spark Scala 的数据框列中爆炸元组数组

问题描述

我想从数据框中分解 Array[(Int, Int)] 列

输入:

colA newCol
1     [[1a, 2],[3c, 5u]]
2     [[1c, 9m], [5e, 7l]]

输出:

colA newCol
1     1a
1     3c
2     1c
2     5e

标签: scalaapache-sparkapache-spark-sql

解决方案


这是我的方法。

+----+--------------------+
|col1|col2                |
+----+--------------------+
|1   |[[1a, 2b], [3c, 5u]]|
|2   |[[1c, 9m], [5e, 7l]]|
+----+--------------------+

这是您的数据框和

df.withColumn("t", explode($"col2")).selectExpr("col1", "t[0]").show

我的代码结果

+----+----+
|col1|t[0]|
+----+----+
|   1|  1a|
|   1|  3c|
|   2|  1c|
|   2|  5e|
+----+----+

推荐阅读