需求:根据商品清单表 a 中商品号求每个月的商品累计数量,以及累计销售额,例如 1 月,求的是 1 月的商品数量和销售额,2 月求的是 1 月和 2 月的商品数量和销售额(注意,商品需要去重,1 月和 2 月都有该商品也只能作为一条) 我现在的做法就是在表 a 中选择所有月份,然后 left join 表 a,筛选出的数据是这样的:例如 1 月的数据就是一月的商品 id 和售价,2 月的数据是 1 月和 2 月的商品 id 和售价,然后对月份进行分组求的就是月累计数据
现在发现的问题:在 spark 运行到 join 这一步时总是失败,应该是 shuffle 数据太多导致的,清单数据表大概有 108g,我配置了 10 个 executer,每个 executer5 个 core,以及每个 executer20g 的内存大小,还是跑不起来,在 hive 中虽然运行时间长,但还是能跑通的,这个问题困扰我好几天了,希望大家能给个建议,十分感谢!
1
Comdex 2020-05-26 00:22:27 +08:00 via Android
网上找找参数调整呗,比如 partition
|
2
zhuyuuyuhz 2020-05-26 08:17:27 +08:00 via iPhone
增加 executor 数量,50-200,尝试每个月或者每天单独跑,然后累计求和
|