Заполните последующие нулевые значения на основе значения из первой строки в pyspark - PullRequest
0 голосов
/ 04 февраля 2020

У меня есть таблица, показанная ниже

таблица

Первая строка столбца G (pesudo_payment) генерируется из столбца C (остаток), f (оплата) по формуле: g = c* (1 + e) ​​-f, однако, начиная со второй строки, столбец G основан на предыдущем значении столбца G, которое должно быть: g3 = g2 (1+ e3) -f3

Сначала я попытался «ранжировать» и взять ранг = 1, чтобы вычислить первый ряд каждой группы.

from pyspark.sql.functions import rank

window = Window.partitionBy(df['loan_id']).orderBy(df['date'])

df_new=df.select('*', rank().over(window).alias('rank'))
df_new=df_new.withColumn('col_g',
        F.when(F.col('rank')=='1',F.col('balance')*(1+F.col('rate'))-
        F.col('payment'))
       )   

Я пытался использовать функцию задержки для ранга, не равного 1, но не сработал, потому что значения NA по-прежнему равны NA после задержки.

Как мне написать этот код в pyspark?

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