log_sum = sum(log(col('rate') + 1)).over(wr)
cumulative_rate = exp(log_sum).alias('cumulative_rate')
base_population = first('population').over(w).alias('base_population')
current_population = coalesce(cumulative_rate * base_population, col(
    'population')).alias('current_population')
Как рассчитать столбец в строке, используя два столбца предыдущей строки в кадре данных Spark?