V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
cangxiao
V2EX  ›  问与答

SparkSql 大数据量 join 问题

  •  
  •   cangxiao · 2020-05-25 22:13:37 +08:00 · 1359 次点击
    这是一个创建于 1642 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    2 条回复    2020-05-26 08:17:27 +08:00
    Comdex
        1
    Comdex  
       2020-05-26 00:22:27 +08:00 via Android
    网上找找参数调整呗,比如 partition
    zhuyuuyuhz
        2
    zhuyuuyuhz  
       2020-05-26 08:17:27 +08:00 via iPhone
    增加 executor 数量,50-200,尝试每个月或者每天单独跑,然后累计求和
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2751 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 05:41 · PVG 13:41 · LAX 21:41 · JFK 00:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.