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

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

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

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

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