pyspark(py)spark能用空的分区Dataframe核心地保存元数据吗?

lawou6xi  于 2021-05-26  发布在  Spark
关注(0)|答案(0)|浏览(234)

我对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地板,可以在未来阅读?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题