• 请不要在回答技术问题时复制粘贴 AI 生成的内容
apostle
V2EX  ›  程序员

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

  •  
  •   apostle · Dec 9, 2021 via Android · 2224 views
    This topic created in 1622 days ago, the information mentioned may be changed or developed.
    请教各位大佬,我用 spark 算的一张几十万级别的表,结果保存到 hive. 结果任务卡在 save task 几个小时,该如何优化呢?实例代码如下

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

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

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

    好久之前 写过 spark
    当时 提交任务 老是跑挂掉
    后来发现是 maven 中的 spark 版本 与 部署的版本不一致
    zhusimaji
        6
    zhusimaji  
       Dec 9, 2021 via iPhone
    几十万数据很少了,partitions 也不要设那么多吧,具体原因看下日志吧,web 页面应该有提示
    bigwhite2021
        7
    bigwhite2021  
       Dec 9, 2021
    几十万的数据很小了,Itemids arrary< string> 里面数据很大吗?没必要分 100 个分区吧,只要保存的文件小于 128MB 应该一个分区就行了吧,具体原因可以看下 UI 里的日志和 task 的执行时间。
    pengtdyd
        8
    pengtdyd  
       Dec 10, 2021
    跑一下 spark 的测试程序,看看是不是环境问题
    wloverine
        9
    wloverine  
       Dec 10, 2021
    @apostle 几十万应该是很快的,喝杯水的功夫就跑完了
    diggzhang
        10
    diggzhang  
       Dec 10, 2021
    partition=id%100
    ----------------------------------
    分区设置不合理导致。可能在加载分区目录阶段已经频繁 GC ,最终 OOM 。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1463 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 16:53 · PVG 00:53 · LAX 09:53 · JFK 12:53
    ♥ Do have faith in what you're doing.