Apache spark 如何在Spark中实现迭代优化问题

Apache spark 如何在Spark中实现迭代优化问题,apache-spark,pyspark,Apache Spark,Pyspark,假设我有以下两组数据。我试图将手头上的产品与它们的汇总计数联系起来。对于汇总盘点,您可能有多个类别的产品,其中包括主类别和备选类别。在关系数据库中,我会将第二组数据加载到一个临时表中,使用存储过程迭代汇总数据并减少数量,直到它们为零或者我匹配了计数。我正在尝试在Spark/PySpark中实现一个解决方案,但我不完全确定从哪里开始。我已经附上了一个可能的输出解决方案,我正试图实现,虽然我承认有多个输出将工作 #Rolled Up Quantities# owner,category,altern

假设我有以下两组数据。我试图将手头上的产品与它们的汇总计数联系起来。对于汇总盘点,您可能有多个类别的产品,其中包括主类别和备选类别。在关系数据库中,我会将第二组数据加载到一个临时表中,使用存储过程迭代汇总数据并减少数量,直到它们为零或者我匹配了计数。我正在尝试在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

类别和产品标识是否为1对1映射?一个类别可以有多个产品标识,但一个产品标识不在多个类别中。在汇总级别,一个类别可以替代另一个类别。为了使这些类别更有意义,想象一下类别1是“巧克力糖”,类别4是“香草糖”。第一卷我们要50块糖果,虽然我们更喜欢巧克力,但香草也可以。实际数据要复杂得多,因此我尝试将其保持为足够简单的示例。那么,您是如何获得第二行的
product_id=012
(在可能的解决方案中)的,虽然它来自
alternate_category
,根据您的描述,可以有多个产品id?一个产品id只能有一个类别,但是当您根据备选类别汇总允许用一个产品id替换另一个产品id的数量时。对于可能解决方案列表中的第二行:“ABC,1012,20”,我从汇总列表中知道,
ABC,1
具有备选类别=4,从实际库存列表中,
ABC,4
012
作为产品id。根据您的描述,
ABC,4
可能有多个产品id,如果出现这种情况,应选择哪个产品id,或者生成的
ABC,1
应该有两行以上(每行对应一个不同的产品标识和数量)?或者每个
用户+类别
是否只有一个产品标识?