Присвоение значения столбцу на основе расчета go - PullRequest
0 голосов
/ 26 мая 2020

Назначение значения на основе расчета на go

Я создаю столбец C_ABC если first.record.item = 1 то (openamt - closeamt) если нет (C_ABC + openamt)

Код ниже не работает, так как C_ABC создается на go. Это немного сложно. Как исправить?

df.withColumn('row',f.row_number().over(window))\
  .withColumn('C_ABC',f.when(f.col('row')==1,f.col('openammt') - f.col('closeammt')).otherwise(f.col('C_ABC')+f.col('openammt')))

1 Ответ

0 голосов
/ 26 мая 2020

Если я вас правильно понимаю, вы пытаетесь получить доступ к предыдущей строке в своем вычислении, например, C_ABC[row2] будет иметь значение C_ABC[row1] + openammt?

Если да, присмотритесь к lag функция (например, здесь - https://medium.com/@aiiflo / apache -spark-window-functions-sort-lead-lag-rank-trend-analysis-46b2699fe817 ). Вам, вероятно, потребуется добавить отдельный столбец, например, c_abc_previous

...