我可以成功地将CSV文件转换为Parquet文件,但Parquet文件被分成大量的2-3mb文件。例如,一个~25GB的CSV被转换成一个包含700多个文件的Parquet文件。我的研究表明它应该在256mb到1gb之间。如何预先指定尺寸?
我已经看到Impala是通过PARQUET_FILE_SIZE完成的。我无法为PySpark找到任何东西。示例代码如下:
df.write.mode("overwrite").parquet("s3n://%s:%s@%s/%s" % (ACCESS_KEY, SECRET_KEY, AWS_BUCKET_NAME, FOLDER_FOR_PARQUET_RESULTS))
答案 0 :(得分:0)
尝试:
df \
.repartition(100) \
.write \
.mode("overwrite") \
.parquet("s3n://%s:%s@%s/%s" % (ACCESS_KEY, SECRET_KEY, \
AWS_BUCKET_NAME, FOLDER_FOR_PARQUET_RESULTS))
重新分区会将您的数据帧重新分区为100个分区(大小约为256mb - 未压缩),这将创建更大的拼花文件。