Предположим, у меня есть следующие два набора данных. Я пытаюсь связать продукты под рукой с их свернутыми подсчетами. Для подсчета вы можете иметь товары из нескольких категорий с основной и альтернативной категориями. В реляционной базе данных я бы загружал второй набор данных во временную таблицу, используя хранимую процедуру, чтобы выполнить итерацию по сводным данным и уменьшать значения до тех пор, пока они не станут равны нулю или пока я не сопоставлю подсчеты. Я пытаюсь реализовать решение в Spark / PySpark, и я не совсем уверен, с чего начать. Я приложил возможное решение для вывода, которое я пытаюсь достичь, хотя я понимаю, что есть несколько выходов, которые будут работать.
#Rolled Up Quantities#
owner,category,alternate_category,quantity
ABC,1,4,50
ABC,2,3,25
ABC,3,2,15
ABC,4,1,10
#Actual Stock On Hand#
owner,category,product_id,quantity
ABC,1,123,30
ABC,2,456,20
ABC,3,789,20
ABC,4,012,30
#Possible Solution#
owner,category,product_id,quantity
ABC,1,123,30
ABC,1,012,20
ABC,2,456,20
ABC,2,789,5
ABC,3,789,15
ABC,4,012,10