agg条件:关键字can';不要用Pyspark来表达
我正在使用pyspark创建一个数据帧,当列“isfraud”的值=1时,该数据帧计算“montant”的和 但我得到了这个错误: 文件“”,第5行 当(col(“isFraud”)=1,sum(“montant”)) ^SyntaxError:关键字不能是表达式 代码如下:agg条件:关键字can';不要用Pyspark来表达,pyspark,Pyspark,我正在使用pyspark创建一个数据帧,当列“isfraud”的值=1时,该数据帧计算“montant”的和 但我得到了这个错误: 文件“”,第5行 当(col(“isFraud”)=1,sum(“montant”)) ^SyntaxError:关键字不能是表达式 代码如下: CNP_df_fraude= (tx_wd_df #.filter("isFraude =='1'").filter("POS_Card_Presence =='CardNotPrese
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"))
)
)
有什么想法吗?
谢谢您不能在.agg()
函数中使用when()
但是,您可以尝试:
CNP_df_fraude=tx_wd_df.filter(F.col(“isFraud”)==1)
.groupBy(“POS卡持卡人在场”)
.sum(“蒙坦”)
只需将when()放入sum()中:
谢谢,但我不想过滤“isfraud”==1个hanks,但我得到了这个错误:NameError:name'when'未定义“@Nasri,您需要从pyspark.sql导入所有三个函数:
。函数导入when,col,sum
CNP_df_fraude= (tx_wd_df
.groupBy("POS_Cardholder_Presence")
.agg(
sum(when(col("isFraud")==1, col("montant")).otherwise(0))
)
)