SparkSql 大数据量 join 问题

2020-05-25 22:13:37 +08:00
 cangxiao

需求:根据商品清单表 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 中虽然运行时间长,但还是能跑通的,这个问题困扰我好几天了,希望大家能给个建议,十分感谢!

1350 次点击
所在节点    问与答
2 条回复
Comdex
2020-05-26 00:22:27 +08:00
网上找找参数调整呗,比如 partition
zhuyuuyuhz
2020-05-26 08:17:27 +08:00
增加 executor 数量,50-200,尝试每个月或者每天单独跑,然后累计求和

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/675423

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX