gpt4 book ai didi

python - 包含 pyspark SQL : TypeError: 'Column' object is not callable

转载 作者:行者123 更新时间:2023-12-04 11:21:25 27 4
gpt4 key购买 nike

我正在使用 Spark 2.0.1,

 df.show()
+--------+------+---+-----+-----+----+
|Survived|Pclass|Sex|SibSp|Parch|Fare|
+--------+------+---+-----+-----+----+
| 0.0| 3.0|1.0| 1.0| 0.0| 7.3|
| 1.0| 1.0|0.0| 1.0| 0.0|71.3|
| 1.0| 3.0|0.0| 0.0| 0.0| 7.9|
| 1.0| 1.0|0.0| 1.0| 0.0|53.1|
| 0.0| 3.0|1.0| 0.0| 0.0| 8.1|
| 0.0| 3.0|1.0| 0.0| 0.0| 8.5|
| 0.0| 1.0|1.0| 0.0| 0.0|51.9|

我有一个数据框,我想使用 withColumn 向 df 添加一个新列,并且新列的值基于其他列值。我使用了这样的东西:
>>> dfnew = df.withColumn('AddCol' , when(df.Pclass.contains('3.0'),'three').otherwise('notthree'))

它给出了一个错误
TypeError: 'Column' object is not callable

可以帮助如何克服这个错误。

最佳答案

这是因为您正在尝试应用函数 contains到列。函数contains pyspark 中不存在。你应该试试 like .尝试这个:

import pyspark.sql.functions as F

df = df.withColumn("AddCol",F.when(F.col("Pclass").like("3"),"three").otherwise("notthree"))

或者,如果您只是希望它恰好是数字 3你应该做:
import pyspark.sql.functions as F

# If the column Pclass is numeric
df = df.withColumn("AddCol",F.when(F.col("Pclass") == F.lit(3),"three").otherwise("notthree"))

# If the column Pclass is string
df = df.withColumn("AddCol",F.when(F.col("Pclass") == F.lit("3"),"three").otherwise("notthree"))

关于python - 包含 pyspark SQL : TypeError: 'Column' object is not callable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53787663/

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