数据是同一份数据,xxx.write.csv(yyy)和 xxx.repartition(13).write.csv(yyy)输出后,文件夹的大小居然差了两倍多;
数据量的大小大概是 3G,后者大概是 7G
相差的有点大,好奇是咋回事
木有搜到啥资料,有没有朋友指点一下
1
SErHo 2018-03-21 20:50:35 +08:00 via iPhone
有压缩吗?
|
2
linuxchild OP @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 个文件,😂 |