V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
linuxchild
V2EX  ›  程序员

spark 写文件时,同一份数据,保存到不同数量文件的时候,最终大小不一样,是怎么回事

  •  
  •   linuxchild · Mar 21, 2018 · 3836 views
    This topic created in 2960 days ago, the information mentioned may be changed or developed.

    数据是同一份数据,xxx.write.csv(yyy)和 xxx.repartition(13).write.csv(yyy)输出后,文件夹的大小居然差了两倍多;

    数据量的大小大概是 3G,后者大概是 7G

    相差的有点大,好奇是咋回事

    木有搜到啥资料,有没有朋友指点一下

    Supplement 1  ·  Mar 22, 2018
    刚刚发现格式那写错了,我采用的格式是 parquet 格式
    2 replies    2018-03-22 15:26:47 +08:00
    SErHo
        1
    SErHo  
       Mar 21, 2018 via iPhone
    有压缩吗?
    linuxchild
        2
    linuxchild  
    OP
       Mar 22, 2018
    @SErHo 两者格式都一样,parquet+snappy ;

    目前找到了一个相关的资料,http://litaotao.github.io/boost-spark-application-performance 这里提到了一句

    “在 partition 小于 2000 和大于 2000 的两种场景下,Spark 使用不同的数据结构来在 shuffle 时记录相关信息,在 partition 大于 2000 时,会有另一种更高效 [压缩] 的数据结构来存储信息。所以如果你的 partition 没到 2000,但是很接近 2000,可以放心的把 partition 设置为 2000 以上。”

    如果不用 repartition 的话,的确是超过了 2k 个文件,😂
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5162 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 38ms · UTC 05:40 · PVG 13:40 · LAX 22:40 · JFK 01:40
    ♥ Do have faith in what you're doing.