код ссылки
из 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. Спасибо, любая помощь очень ценится!