从数据框列中的列表中解析值
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|
+---------+----+----+
我有一个 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|
+---------+----+----+