我正在使用pyspark创建一个数据框,该数据框在“ isfraud”列的值== 1时计算“ montant”的总和。
但是我得到这个错误:
文件“”,第5行 when(col(“ isFraud”)= 1,sum(“ montant”)) ^ SyntaxError:关键字不能是表达式
这里的代码:
CNP_df_fraude= (tx_wd_df
#.filter("isFraude =='1'").filter("POS_Card_Presence =='CardNotPresent'")
.groupBy("POS_Cardholder_Presence")
.agg(
when(col("isFraud") =1, sum("montant"))
)
)
请问有什么主意吗? 谢谢
答案 0 :(得分:1)
只需将when()放在sum()内:
CNP_df_fraude= (tx_wd_df
.groupBy("POS_Cardholder_Presence")
.agg(
sum(when(col("isFraud")==1, col("montant")).otherwise(0))
)
)
答案 1 :(得分:0)
您不能在when()
函数中使用.agg()
。
您可以尝试:
CNP_df_fraude= tx_wd_df.filter(F.col("isFraud") == 1)
.groupBy("POS_Cardholder_Presence")
.sum("montant")