Плохо, я подумал, что в вашем фрейме данных уже есть столбец с четвертным значением, но, похоже, вам нужен столбец, похожий на четвертый. Я не думаю, что это возможно через оконную функцию, но вот способ достичь этого:
Предполагая, что ваши текущие данные находятся в df.
from pyspark.sql.functions import split
split_col = split(df["week"],'month')
df = df.withColumn("quaterly", (split_col.getItem(1).cast("integer")/(df["sequence_change"] + lit(1))).cast("integer") + lit(1)).orderBy("l_id","week")
Logi c объяснение : Мы собираемся получить номер месяца из значений столбца week
, привести его к целому числу из строки и разделить его на sequence_change value + 1
, а конечное значение приведем к целому числу, чтобы вы могли просто получить целое значение для это без десятичных знаков. Наконец, добавив в него 1, чтобы столбец quaterly
начинался с 1 вместо 0.