gpt4 book ai didi

python - pyspark withcolumn 在每行中插入列表

转载 作者:行者123 更新时间:2023-12-01 00:57:44 25 4
gpt4 key购买 nike

我有一个 df,其中包含一列 type,并且我有两个列表

women = ['0980981', '0987098']
men = ['1234567', '4567854']

现在我想根据 type 列的值添加另一列,如下所示:

from pyspark.sql import functions as psf
df_ = df.withColumn('new_col', psf.when(psf.col('type') == 'men', men).when(psf.col('type') == 'women', women))

但我想我们不能直接插入列表,因为我们可以在Scala中插入Array('1234567', '4567854')。我也尝试过 psf.lit(men) 但没有成功。

知道如何做吗?

最佳答案

使用pyspark.sql.functions.array,它接受列表达式的列表并返回Array类型的单个列表达式,结合 listmen 的理解:

men = ['1234567', '4567854']

df = spark.createDataFrame([['women'], ['men']], 'type: string')
df.withColumn('new_col', F.when(F.col('type') == 'men', F.array([F.lit(string) for string in men]))).show()

输出:

+-----+------------------+
| type| new_col|
+-----+------------------+
|women| null|
| men|[1234567, 4567854]|
+-----+------------------+

关于python - pyspark withcolumn 在每行中插入列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56106864/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com