解析数据框列中的值

问题描述 投票:-2回答:1

我有一个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
apache-spark pyspark pyspark-sql pyspark-dataframes
1个回答
0
投票

可以通过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|
+---------+----+----+
© www.soinside.com 2019 - 2024. All rights reserved.