尝试使用pyspark从本地目录保存镶木地板文件时出现以下错误。 我试过火花1.6和2.2都给出了同样的错误
它正确显示了架构,但在编写文件时出错。
base_path = "file:/Users/xyz/Documents/Temp/parquet"
reg_path = "file:/Users/xyz/Documents/Temp/parquet/ds_id=48"
df = sqlContext.read.option( "basePath",base_path).parquet(reg_path)
out_path = "file:/Users/xyz/Documents/Temp/parquet/out"
df2 = df.coalesce(5)
df2.printSchema()
df2.write.mode('append').parquet(out_path)
org.apache.spark.SparkException: Task failed while writing rows
Caused by: java.io.IOException: can not read class org.apache.parquet.format.PageHeader: Required field 'uncompressed_page_size' was not found in serialized data! Struct: PageHeader(type:null, uncompressed_page_size:0, compressed_page_size:0)
答案 0 :(得分:0)
就我自己而言,我正在为Apache Tika编写一个自定义的Parquet Parser,我遇到了这个错误。事实证明,如果该文件正被另一个进程使用,ParquetReader将无法访问uncompressed_page_size
。因此,导致错误。
验证其他进程是否未保留该文件。