gpt4 book ai didi

apache-spark - pyspark在数据框中用空值替换多个值

转载 作者:行者123 更新时间:2023-12-05 08:53:22 26 4
gpt4 key购买 nike

我有一个数据框 (df),在该数据框内有一列 user_id

df = sc.parallelize([(1, "not_set"),
(2, "user_001"),
(3, "user_002"),
(4, "n/a"),
(5, "N/A"),
(6, "userid_not_set"),
(7, "user_003"),
(8, "user_004")]).toDF(["key", "user_id"])

df:

+---+--------------+
|key| user_id|
+---+--------------+
| 1| not_set|
| 2| user_003|
| 3| user_004|
| 4| n/a|
| 5| N/A|
| 6|userid_not_set|
| 7| user_003|
| 8| user_004|
+---+--------------+

我想替换以下值:not_setn/aN/Auserid_not_set 为空。

如果我可以向列表中添加任何新值并且它们可以更改,那就太好了。

我目前在 spark.sql 中使用 CASE 语句来执行此操作,并希望将其更改为 pyspark。

最佳答案

when() 函数中的

None 对应于null。如果您希望填写任何其他内容而不是 null,则必须将其填写在适当的位置。

from pyspark.sql.functions import col    
df = df.withColumn(
"user_id",
when(
col("user_id").isin('not_set', 'n/a', 'N/A', 'userid_not_set'),
None
).otherwise(col("user_id"))
)
df.show()
+---+--------+
|key| user_id|
+---+--------+
| 1| null|
| 2|user_001|
| 3|user_002|
| 4| null|
| 5| null|
| 6| null|
| 7|user_003|
| 8|user_004|
+---+--------+

关于apache-spark - pyspark在数据框中用空值替换多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53885091/

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