【发布时间】:2017-06-10 18:48:16
【问题描述】:
在 Spark 2.1.0 中,保存空 Parquet 文件似乎被破坏了,因为无法再次读取它们(由于错误的模式推断)
我发现从 Spark 2.0 开始,写入 parquet 文件时默认禁用写入 _metadata 文件。但我找不到重新启用它的配置设置。
我尝试了以下方法:
spark_session = SparkSession.builder \
.master(url) \
.appName(name) \
.config('spark.hadoop.parquet.enable.summary-metadata', 'true') \
.getOrCreate()
还有一些完全不同的组合,例如没有spark.hadoop。
我试图在 PySpark 中运行的代码:
spark_session = session.get_session()
sc = spark_session.sparkContext
df = spark_session.createDataFrame(sc.emptyRDD(), schema)
df.write.mode('overwrite').parquet(path, compression='none')
# this works
df = spark_session.read.schema(schema).parquet(path)
# This throws an error
df = spark_session.read.parquet(path)
【问题讨论】:
标签: apache-spark pyspark parquet