【发布时间】:2022-04-25 15:53:50
【问题描述】:
我想将分散在 s3 上的多个分区层的小 parquet 文件压缩成更大的文件,并将单个分区返回到 s3。
所以在这个例子中,我有 3 个分区层(part1、part2、part3)。我想把这些数据写出来,只用part2分区写出来
在我第一次运行时,我使用了:
df = spark.read
.option("basePath", "s3://some_bucket/base/location/in/s3/")
.parquet("s3://some_bucket/base/location/in/s3/part1=*/part2=*/part3=*/")
df.write.partitionBy("part2").parquet("s3://some_bucket/different/location/")
这在大多数情况下都有效,但这似乎仍然会创建更小的文件。因为我没有运行coalesce 或repartition。这让我想到了我的问题。有没有办法可以根据大小/行数轻松地将这些文件压缩成更大的文件?
提前致谢!
【问题讨论】: