如何将小Parquet文件组合成一个大Parquet文件?

wswtfjt7  于 2021-06-26  发布在  Hive
关注(0)|答案(1)|浏览(436)

这个问题在这里已经有答案了

sparkDataframe写方法写很多小文件(6个答案)
两年前关门了。
我有一些分区的Hive表指向Parquet文件。现在我有很多小Parquet文件为每个分区,每个大小约5kb,我想合并成一个大文件每个分区这些小文件。如何实现这一点以提高我的Hive性能?我已经尝试将分区中的所有Parquet文件读取到一个pysparkDataframe,并将组合的Dataframe重写到同一分区,然后删除旧的Dataframe。但由于某些原因,这在我看来是低效或初级的类型。这样做的利弊是什么?如果还有其他方法,请指导我在spark或pyspark中实现。

tjrkku2a

tjrkku2a1#

你可以读取全部数据, repartition 然后使用 partitionBy (这是您将来也应该保存它们的方式)。比如:

spark\
    .read\
    .parquet('...'))\
    .repartition('key1', 'key2',...)\
    .write\
    .partitionBy('key1', 'key2',...)\
    .option('path', target_part)\
    .saveAsTable('partitioned')

相关问题