Spark Dataframe Repartioning导致不均匀的分区

时间:2018-01-28 12:37:41

标签: apache-spark apache-spark-sql rdd

我使用spark repartition来更改dataframe中的分区数。

在重新分区后写入数据时,我看到已经创建了不同大小的镶木地板文件。

以下是我用来重新分区的代码

df.repartition(partitionCount).write.mode(SaveMode.Overwrite).parquet("/test")

大多数大小为KB的分区,其中一些分区大约为100MB,这是我希望每个分区保留的大小。

这是一个示例

20.2 K  /test/part-00010-0957f5aa-1f14-4295-abe2-0aacfe135444.snappy.parquet
20.2 K  /test/part-00011-0957f5aa-1f14-4295-abe2-0aacfe135444.snappy.parquet
99.9 M  /test/part-00012-0957f5aa-1f14-4295-abe2-0aacfe135444.snappy.parquet

现在,如果我打开20.2K parquet个文件并执行coun t操作,则结果为0。对于99.9M file,相同的count操作会给出一些非零结果。

现在根据我对repartition中的dataframe的理解,它会进行一次完整的随机播放,并尝试保持每个分区的大小相同。然而,上述例子与此相矛盾。

有人可以帮我。

0 个答案:

没有答案