pyspark - agg 条件:关键字不能是 Pyspark 的表达式
问题描述
我正在使用 pyspark 来创建一个数据框,该数据框在 "isfraud" ==1 列的值时计算 "montant" 的总和。
但我得到这个错误:
文件“”,第 5 行 when(col("isFraud") =1, sum("montant")) ^ SyntaxError: keyword can't be an expression
这里的代码:
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"))
)
)
请问有什么想法吗?谢谢
解决方案
只需将 when() 放在 sum() 中:
CNP_df_fraude= (tx_wd_df
.groupBy("POS_Cardholder_Presence")
.agg(
sum(when(col("isFraud")==1, col("montant")).otherwise(0))
)
)
推荐阅读
- c - 在 tizen native 中使用网格布局时无法在两个屏幕之间导航
- json - 如何使用 WCF 获取 POST 请求的正文?
- php - 如何在 PHP 中使用 :: 作为我的变量中的字符
- java - Spring 应用程序在 200 个数据库连接时自行关闭
- wordpress - 如何根据所属产品类别的图片,以编程方式设置产品的特色图片
- javascript - 在 express.js 中使用 CSS 的问题
- javafx - 缩放形状而不将其分开
- javascript - 无法从 javascript 访问对象
- mongodb - 如何使用 mongofiles 在 mongoDB Atlas 中保存文件(图像)?
- shell - 将文件从 1 个目录移动到其他目录