Spark 3.3.0导出Parquet数据集时如何启用_metadata文件?
解决Spark 3.3.0导出分区Parquet时生成
_metadata文件的方法 方法一:写入时直接启用元数据文件生成
Spark 3.2及以上版本支持通过写入选项writeMetadataFile生成Parquet的_metadata和_common_metadata文件,Spark 3.3.0可直接配置:
df.write.partitionBy(['x']) \ .option("writeMetadataFile", "true") \ .parquet('path')
执行后,输出目录根目录会自动生成_metadata文件,后续可直接用PyArrow的ds.parquet_dataset("/path/to/dir/_metadata")读取数据集。
方法二:针对已生成的数据集补生_metadata文件
如果已完成数据写入但未生成_metadata文件,可通过PyArrow直接生成:
import pyarrow.dataset as ds # 读取现有分区Parquet数据集 dataset = ds.dataset("path", format="parquet") # 生成并写入_metadata文件 ds.write_metadata(dataset.schema, "path/_metadata", format="parquet")
生成后同样可以用PyArrow指定_metadata文件路径读取完整数据集。
内容的提问来源于stack exchange,提问作者MRTN
相关产品推荐
相关产品推荐

