【发布时间】:2021-04-30 22:03:59
【问题描述】:
我正在使用 pyspark,并且我有一个大型数据源,我想重新分区,明确指定每个分区的文件大小。
我知道使用repartition(500) 函数会将我的镶木地板分成大小几乎相等的 500 个文件。
问题是每天都会有新数据添加到这个数据源中。在某些日子可能会有很大的输入,而在某些日子可能会有较小的输入。因此,在查看一段时间内的分区文件大小分布时,每个文件的大小分布在 200KB 到 700KB 之间。
我正在考虑指定每个分区的最大大小,这样无论文件数量如何,我每天每个文件的文件大小都差不多。 这将有助于我稍后在这个大型数据集上运行我的工作,以避免扭曲的执行器时间和洗牌时间等。
有没有办法使用repartition() 函数或在将数据帧写入镶木地板时指定它?
【问题讨论】:
标签: apache-spark pyspark parquet partitioning