V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
apostle
V2EX  ›  程序员

小白求助大数据大佬 spark 问题

  •  
  •   apostle · 164 天前 via Android · 927 次点击
    这是一个创建于 164 天前的主题,其中的信息可能已经有所发展或是发生改变。
    请教各位大佬,我用 spark 算的一张几十万级别的表,结果保存到 hive. 结果任务卡在 save task 几个小时,该如何优化呢?实例代码如下

    df.write.format("orc"). saveAsTable("db. table")

    df 是一个几十万条数据的 dataframe
    10 条回复    2021-12-10 08:30:36 +08:00
    wloverine
        1
    wloverine  
       164 天前
    几十万不应该卡住呀,看下 spark ui 上耗时在哪里,是不是计算执行耗时
    apostle
        2
    apostle  
    OP
       164 天前 via Android
    df 的结构如下
    Id string
    Itemids arrary< string>
    分区字段是 partition=id%100 来填充
    apostle
        3
    apostle  
    OP
       164 天前 via Android
    @wloverine 我在 ui 上确认过了显示 save 卡了一个多两个小时还没跑完 不过我也不确定 明天给大佬上图
    apostle
        4
    apostle  
    OP
       164 天前 via Android
    @wloverine 之前也没跑过这么大数据量 正常应该是多久呀
    cs419
        5
    cs419  
       164 天前
    几十万条数据?
    IDE 里 单机就能跑吧 有必要拆成 100 个么

    可以考虑 折半查找
    是不是某些数据导致的卡死

    好久之前 写过 spark
    当时 提交任务 老是跑挂掉
    后来发现是 maven 中的 spark 版本 与 部署的版本不一致
    zhusimaji
        6
    zhusimaji  
       164 天前 via iPhone
    几十万数据很少了,partitions 也不要设那么多吧,具体原因看下日志吧,web 页面应该有提示
    bigwhite2021
        7
    bigwhite2021  
       164 天前
    几十万的数据很小了,Itemids arrary< string> 里面数据很大吗?没必要分 100 个分区吧,只要保存的文件小于 128MB 应该一个分区就行了吧,具体原因可以看下 UI 里的日志和 task 的执行时间。
    pengtdyd
        8
    pengtdyd  
       164 天前
    跑一下 spark 的测试程序,看看是不是环境问题
    wloverine
        9
    wloverine  
       164 天前
    @apostle 几十万应该是很快的,喝杯水的功夫就跑完了
    diggzhang
        10
    diggzhang  
       164 天前
    partition=id%100
    ----------------------------------
    分区设置不合理导致。可能在加载分区目录阶段已经频繁 GC ,最终 OOM 。
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   4334 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 02:31 · PVG 10:31 · LAX 19:31 · JFK 22:31
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.