Сгруппированные и извлеченные агрегированные медианные значения Spark DF - PullRequest
0 голосов
/ 11 апреля 2020

код ссылки

из transforms.api import transform, Input, Output

import pyspark. sql .функции как f

@ преобразование (

output1=Output("/Buyers/clean/median_750_buyers"),
output2=Output("/Buyers/clean/cleaned/split_purchase_log_data", sever_permissions=True),
my_input=Input("/Buyers/raw_data/purchase_log"),

def get_median_750_buyers (ctx, my_input, output1, output2):

my_input = my_input.dataframe()

# группируется по имени_покупателя, континенту и одежде и извлекает 25 медианных покупателей из каждого из 30 возможных комбинаций

 df = my_input.groupby('buyer_name', 'continent','clothing_items') \
             .count() \
             .select("buyer_name", f.col('count').alias('buyer_name_count')) \
             .sort(f.desc("buyer_name_count"))

# get the total row in the new dataframe
rowCount = df.count()

У меня есть искровой фрейм данных, который составляет 1 000 000 строк записей о покупках с более чем 50 000 уникальных покупателей 5 различных типов одежды, которые приобретаются на 6 континентах

6 Континенты: (Северная Америка, Европа, Азия, Африка, Южная Америка, Австралия)

5 Предмет одежды: (шляпа, брюки, футболка, пальто, носки)

хочу получить из каждой комбинации 6 Континентов и 5 предметов одежды = (30 комбинаций) информационный фрейм из 25 имен покупателей, которые наиболее близки к медианному значению при группировании по столбцу customer_name. Таким образом, всего будет 750 покупателей и все строки их данных о покупке извлечены и сохранены в фрейме данных, называемом «750_median_buyers».

Требуется сделать это с помощью кода pyspark. Спасибо, любая помощь очень ценится!

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