условие agg: ключевое слово не может быть выражением с Pyspark - PullRequest
0 голосов
/ 04 октября 2019

Я использую pyspark для создания кадра данных, который вычисляет сумму "montant", когда значение столбца "isfraud" == 1.

Но я получаю эту ошибку:

Файл "", строка 5, когда (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"))
                 )
                )

Есть идеи, пожалуйста? Спасибо

Ответы [ 2 ]

1 голос
/ 04 октября 2019

Просто поставьте когда () внутри sum ():

CNP_df_fraude= (tx_wd_df
            .groupBy("POS_Cardholder_Presence")
            .agg(
                 sum(when(col("isFraud")==1, col("montant")).otherwise(0))
             )
            )
0 голосов
/ 04 октября 2019

Вы не можете использовать when() внутри функции .agg().

Однако вы можете попробовать:

 CNP_df_fraude= tx_wd_df.filter(F.col("isFraud") == 1)
                .groupBy("POS_Cardholder_Presence")
                .sum("montant")     
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...