我有~250个文件夹。一天中的每个文件夹。每个文件夹包含24个拼花文件。我需要全部读取它们,在它们上运行一个函数,并在更改函数后编写它们。
在写作时,我这样做:
df
.repartition('date)
.write
.partitionBy("date")
.mode(SaveMode.Overwrite)
.parquet(outputPath)
但是这会将原始拆分“丢失”到每个日期的24个部分,并且每个日期写入一个文件。有没有选择将每天分成n个部分?
你可以做一个时指定目标分区的数量repartition- scaladoc
df
.repartition(numPartitions = 24, 'date)
.write
.partitionBy("date")
.mode(SaveMode.Overwrite)
.parquet(outputPath)
编辑
我刚刚意识到numPartitions总共产生的分区数。因此,您可以尝试将它传递给每个文件所需的分割数量的天数,例如 numPartitions = 24 * 250 - 但是,不能保证所有天都会有24个分割,特别是如果每天的数据量大不相同。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。