Pyspark:相当于 np.where [重复]

2024-06-18

这个操作在 Pyspark 中相当于什么?

import pandas as pd
import numpy as np

df = pd.DataFrame({'Type':list('ABBC'), 'Set':list('ZZXY')})
df['color'] = np.where(df['Set']=='Z', 'green', 'red')
print(df)

output

   Set Type  color
0   Z    A  green
1   Z    B  green
2   X    B    red
3   Y    C    red

您正在寻找pyspark.sql.functions.when() http://spark.apache.org/docs/2.1.0/api/python/pyspark.sql.html#pyspark.sql.functions.when:

from pyspark.sql.functions import when, col

df = df.withColumn('color', when(col('Set') == 'Z', 'green').otherwise('red'))
df.show()
#+---+----+-----+
#|Set|Type|color|
#+---+----+-----+
#|  Z|   A|green|
#|  Z|   B|green|
#|  X|   B|  red|
#|  Y|   C|  red|
#+---+----+-----+

如果您有多个条件需要检查,您可以将调用链接在一起when()如图所示这个答案 https://stackoverflow.com/a/42537653/5858851.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Pyspark:相当于 np.where [重复] 的相关文章

随机推荐