Apache spark 在Spark 2.1.0中启用_元数据文件
Spark 2.1.0似乎破坏了保存空拼花文件的功能,因为无法再次读取它们(由于错误的模式推断) 我发现,由于Spark 2.0,在编写拼花地板文件时,默认情况下会禁用写入_元数据文件。但是我找不到配置设置来重新启动它 我尝试了以下方法:Apache spark 在Spark 2.1.0中启用_元数据文件,apache-spark,pyspark,parquet,Apache Spark,Pyspark,Parquet,Spark 2.1.0似乎破坏了保存空拼花文件的功能,因为无法再次读取它们(由于错误的模式推断) 我发现,由于Spark 2.0,在编写拼花地板文件时,默认情况下会禁用写入_元数据文件。但是我找不到配置设置来重新启动它 我尝试了以下方法: spark_session = SparkSession.builder \ .master(url) \ .appName(name) \
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)
这是
sc.emptyRDD()
的行为问题。您可以找到有关这种行为发生的确切原因的更多信息
当前的解决方案是执行以下操作:df=spark\u session.createDataFrame(sc.emptyRDD(),schema)。重新分区(1)
,并且仍然具有问题中提到的配置设置