реализация оконных функций (задержка) и использование IsNotIn в pyspark - PullRequest
0 голосов
/ 21 февраля 2019

Ниже приведен код T-SQL.Я попытался преобразовать его в pyspark с помощью оконных функций, которые также прикреплены.

  case 
             when eventaction = 'OUT' and lag(eventaction,1) over (PARTITION BY barcode order by barcode,eventdate,transactionid) <> 'IN'  
                  then 'TYPE4'
             else ''
      end as TYPE_FLAG,

Ошибка выдачи кода Pyspark с помощью оконной функции lag

Tgt_df = Tgt_df.withColumn(
    'TYPE_FLAG',
    F.when(
        (F.col('eventaction')=='OUT')
        &(F.lag('eventaction',1).over(w).isNotIn(['IN'])),
    "TYPE4"
).otherwise(''))  

Но это не работает.Что делать!?

1 Ответ

0 голосов
/ 21 февраля 2019

Выдает ошибку, потому что нет метода isNotIn для объекта столбцов.Это было бы очевидно, если бы вы только что опубликовали сообщение об ошибке ...

Вместо этого используйте оператор ~ (not).

&( ~ F.lag('eventaction',1).over(w).isin(['IN'])),

Список доступных методов приведен в официальной документации .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...