我有〜250个文件夹。每个文件夹一天。 每个文件夹包含24个实木复合地板文件。 我需要全部阅读它们,在它们上运行一个函数,然后在函数更改后将它们写入。
写作时,我正在这样做:
df
.repartition('date)
.write
.partitionBy("date")
.mode(SaveMode.Overwrite)
.parquet(outputPath)
但这会在每个日期“丢失”原始分割成24个部分,并在每个日期写入一个文件。是否可以将每天分成n个部分?
答案 0 :(得分:-1)
您可以在执行repartition
-scaladoc
df
.repartition(numPartitions = 24, 'date)
.write
.partitionBy("date")
.mode(SaveMode.Overwrite)
.parquet(outputPath)
我刚刚意识到numPartitions
是所产生的分区总数。因此,您可以尝试将其传递给您的天数乘以每个文件所需的拆分次数,例如 eg numPartitions = 24 * 250
-但是,不能保证所有的日子都精确地有24个拆分,尤其是如果每天的数据量完全不同。