gpt4 book ai didi

python - Pyspark:将列值与另一个值进行比较

转载 作者:行者123 更新时间:2023-12-04 07:51:14 26 4
gpt4 key购买 nike

我有以下数据框:

+----+----+----+----+
|col0|col1|col2|col3|
+----+----+----+----+
| 1| 21| 3|null|
| 4| 5| 23|null|
|null| 4| 5| 6|
|null| 9| 22| 42|
+----+----+----+----+
我尝试计算列 'col1' 和 1.5 的最小值:
import pyspark.sql.functions as F

cond = df['col2'] > 10
df = df.withColumn('new_col', F.when(cond, F.least(F.col('col1')*0.2, 1.5)).otherwise(F.lit(100)))
df.show()
但我得到以下异常:

TypeError: Invalid argument, not a string or column: 1.5 of type <class 'float'>. For column literals, use 'lit', 'array', 'struct' or 'create_map' function.

最佳答案

使用 F.lit(1.5)F.least ,因为它需要一列并且不接受浮点数:

df2 = df.withColumn('new_col', F.when(cond, F.least(F.col('col1')*0.2, F.lit(1.5))).otherwise(F.lit(100)))

关于python - Pyspark:将列值与另一个值进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66964139/

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