如何在spark数据帧中取消一个数组,以便结果数据帧为原始数组中的每个值包含一行?
示例:
scala> df.show()
+---------+------+
|employees|person|
+---------+------+
|[1, 2, 3]| Mary|
|[4, 5, 6]| John|
+---------+------+
预期结果:
+---------+------+
|employee |person|
+---------+------+
|1 | Mary|
|2 | Mary|
|3 | Mary|
|4 | John|
|5 | John|
|6 | John|
+---------+------+
这就是我的尝试:
df.select($"person", explode($"employees")).show()
+------+---+
|person|col|
+------+---+
| Mary| 1|
| Mary| 2|
| Mary| 3|
| John| 4|
| John| 5|
| John| 6|
+------+---+
如何将生成的爆炸列命名为" employee"?
答案 0 :(得分:1)
如何将生成的爆炸列命名为“employee”?
df.select($"person", explode($"employees").alias("employee")).show()
或
df.select($"person", explode($"employees").as("employee")).show()
答案 1 :(得分:1)
您可以使用withColumn
作为
df.withColumn("employee", explode($"employees")).show()