我有一个pyspark数据框,如下面的输入数据框。它具有colA列,其中包含数字列表作为每个值。我想创建一个新列colC来解析colA列表中的每个数字,例如下面的示例输出数据框。谁能建议该怎么做?
输入数据框:
colA colB
[1,2] 1
[3,2,4] 2
输出数据框:
colA colB colC
[1,2] 1 1
[1,2] 1 2
[3,2,4] 2 3
[3,2,4] 2 2
[3,2,4] 2 4
可以通过explode
功能完成:
from pyspark.sql.functions import explode
df.withColumn("colC", explode(df.colA)).show()
输出:
+---------+----+----+
| colA|colB|colC|
+---------+----+----+
| [1, 2]| 1| 1|
| [1, 2]| 1| 2|
|[3, 2, 4]| 2| 3|
|[3, 2, 4]| 2| 2|
|[3, 2, 4]| 2| 4|
+---------+----+----+