Создать повторяющийся номер строки на основе столбца раздела в pyspark - PullRequest
0 голосов
/ 28 апреля 2020

Я хочу создать квартальный столбец, показанный ниже, который после каждых 4 записей для каждого номера l_id должен меняться в pyspark. Перед формированием квартального столбца будут упорядочены данные на основе столбцов l_id и week.

enter image description here

1 Ответ

1 голос
/ 28 апреля 2020

Плохо, я подумал, что в вашем фрейме данных уже есть столбец с четвертным значением, но, похоже, вам нужен столбец, похожий на четвертый. Я не думаю, что это возможно через оконную функцию, но вот способ достичь этого:

Предполагая, что ваши текущие данные находятся в 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.

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