从数据框列中的列表中解析值

parse values from list in dataframe column

我有一个 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|
+---------+----+----+