hadoop Pyspark:保存多个 parquet 文件的特定大小的单个文件

hi3rlvi2  于 8个月前  发布在  Hadoop
关注(0)|答案(1)|浏览(130)

如何保存Pyspark多个镶嵌文件与特定大小?
示例:我的框架在HDFS上使用500GB,每个文件是128MB。我想保存到250个Parquet文件,每个文件是2GB。我如何存档这个?

ktca8awb

ktca8awb1#

它总是好的,使一个简单的搜索在这里,如果这已经被问到或回答在这里,我已经可以看到一对夫妇:
PySpark: How to specify file size when writing parquet files?
Write pyspark dataframe into specific number of parquet files in total across all partition columns
要保存一个PySpark框架到多个特定大小的Parquet文件,可以使用repartition方法将框架分割成所需数量的分区,然后使用write方法和partitionBy选项将每个分区保存为一个单独的Parquet文件。例如,要将一个框架保存为250个Parquet文件,每个文件的大小为2 GB,可以使用以下代码:

df = df.repartition(250)
df.write.partitionBy("partition_column").parquet("hdfs:///path//")

将partition_column替换为您要分区的列的名称。这将按该列组织输出文件。此语句中的partitionBy是可选的。
如果您要减少分区大小,并且分区大小大于250,那么您可以使用合并来避免随机分配,但是重新分区更好地确保您想要的输出

相关问题