У меня вопрос о лучших практиках для Pandas UDF в PySpark. В этом примере не используется мой точный набор данных, но структура та же, поэтому простите за любые логические скачки. В настоящее время у меня есть два фрейма данных: df1 с моей переменной стоимости и df2 с моей почасовой переменной продаж. Из-за характера данных в df1 всегда меньше записей, чем в df2.
df1
-------------------
Date | Cost
-------------------
01/01/20 | $50
01/02/20 | $85
01/03/20 | $25
etc...
df2
---------------------------
Date | Time | Sales
---------------------------
01/01/20 | 08:00 | $10
01/01/20 | 09:00 | $05
01/01/20 | 10:00 | $15
01/02/20 | 08:00 | $12
01/02/20 | 09:00 | $07
01/02/20 | 10:00 | $26
01/03/20 | 08:00 | $02
01/03/20 | 09:00 | $05
01/03/20 | 10:00 | $11
etc...
df3 (Joined table)
----------------------------------------
Date | Time | Sales | DailyCost
----------------------------------------
01/01/20 | 08:00 | $10 | $50
01/01/20 | 09:00 | $05 | $50
01/01/20 | 10:00 | $15 | $50
01/02/20 | 08:00 | $12 | $85
01/02/20 | 09:00 | $07 | $85
01/02/20 | 10:00 | $26 | $85
01/03/20 | 08:00 | $02 | $25
01/03/20 | 09:00 | $05 | $25
01/03/20 | 10:00 | $11 | $25
Я знаю, что могу объединить эти два фрейма данных в столбце «Дата» и получить в итоге одну таблицу df3, кормить мой Pandas UDF. Мои выходные данные Pandas UDF нуждаются во всей этой информации для выполнения функции на основе даты, и из-за фактической функции, требующей всех этих данных, я не могу предварительно обработать фреймы данных, например, усредняя столбец «Продажи» за день. или что-то вроде того. Эта текущая настройка мне подходит, но лучше ли использовать df2 в качестве таблицы поиска для моей функции? Если да, то как мне это сделать в Pandas UDF?
Спасибо!