在pyspark中优化木地板文件

时间:2020-08-17 18:52:38

标签: pyspark parquet

我在pyspark中有大量的计算工作,可以相当迅速地输出为镶木地板格式,但可以在N个分区(其中N已知)上生成数千个〜3Mb文件。我知道我可以在写入之前将数据重新分区到这些分区上,但是从〜2000个节点开始的随机整理工作似乎要花很长时间。鉴于此,我有一个两部分的问题:

  1. 重新分区然后在一个步骤中写入镶木地板会更好,还是先写入镶木地板然后重新粘贴并再次写入镶木地板,再合并小文件,会更好吗?本质上,这将在最后执行镶木地板优化步骤。请注意,我并不担心存储空间。

  2. 如果我采用重新贴装和重写的方法,那么以下是执行此操作的最佳方法吗?

df.repartition(N, 'partition_name').write.partitionBy('partition_name').saveAsTable(...)

似乎repartition命令引入了另一种慢速随机播放操作,考虑到数据已被分区,实际上并没有必要。

0 个答案:

没有答案