Vis*_*App 0 hive apache-spark parquet pyspark
我有一些分区的配置单元表,它们指向镶木地板文件。现在每个分区都有很多小的镶木地板文件,每个大小约为 5kb,我想将这些小文件合并为每个分区的一个大文件。我怎样才能做到这一点来提高我的蜂巢性能?我尝试将分区中的所有镶木地板文件读取到 pyspark 数据帧,并将组合数据帧重写到同一分区并删除旧的。但出于某种原因,这对我来说似乎效率低下或初学者级别的类型。这样做的利弊是什么?而且,如果有任何其他方法,请指导我在 spark 或 pyspark 中实现它。
您可以repartition通过您拥有的分区读取整个数据,然后使用 写入partitionBy(这也是您将来保存它们的方式)。就像是:
spark\
.read\
.parquet('...'))\
.repartition('key1', 'key2',...)\
.write\
.partitionBy('key1', 'key2',...)\
.option('path', target_part)\
.saveAsTable('partitioned')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9818 次 |
| 最近记录: |