我对spark和保存空的pratitionedDataframe有问题。存在空Dataframe:
schema = StructType([
StructField('firstname', StringType()),
StructField('middlename', StringType()),
StructField('lastname', StringType())
])
empty_df = spark.createDataFrame(spark.sparkContext.emptyRDD(), schema)
如果我不分区保存它
empty_df.write.mode('overwrite').format("parquet").save("/nonpartitioned_empty_df")
然后,可以读取Parquet地板没有任何错误(元数据保存正确)。
点击
但是如果我尝试用分区来保存它,例如:
empty_df.write.mode('overwrite').format("parquet").partitionBy("firstname").save("/partitioned_empty_df")
然后抛出分析异常,表明元数据未正确保存:
AnalysisException: Unable to infer schema for Parquet. It must be specified manually.
此外,在非分区\u empty \u df路径中,我们可以看到一些文件(一个Parquet、\u committed、\u start和\u success),在分区\u empty \u df中只有一个文件(\u success)。
有没有办法防止这种情况,并保存空分区Parquet地板,可以在未来阅读?
暂无答案!
目前还没有任何答案,快来回答吧!