скользящая сумма и распределить значения, чтобы получить окончательные значения - PullRequest
0 голосов
/ 02 мая 2020

Я пытаюсь взять значения и распределить их. enter image description here

На основании приведенной выше таблицы я могу получить значения 1_d, не в состоянии получить 2_d и 3_d

import sys
from pyspark.sql.window import Window
import pyspark.sql.functions as func
days = lambda i: i * 86400
dataframe = dataframe.withColumn('date', dataframe.date.cast('timestamp'))
windowSpec1 = Window.partitionBy('x_i','x_l','flag').orderBy(date).rangeBetween(0, days(35))
windowSpec2 = Window.partitionBy('x_i','x_l').orderBy(date).rangeBetween(0, days(35))
windowSpec3 = Window.partitionBy('x_i','x_l','flag').orderBy(date)
dataFrame = dataframe.withColumn('1_d',(first("u").over(windowSpec3)/(sum(values).over(windowSpec2))))

Может кто-нибудь сказать мне, как получить Значения 2_d и 3_d и окончательное значение

Примечание: из столбца 'u' я просто беру только первое значение в соответствующей категории флага

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