PySpark DataFrame写入Delta时分区列名称异常问题求助
分区列名称乱码问题原因及解决方法
你的问题核心原因是分区列名中包含多余空格:在partitionBy("X ","Y","Z ")里,"X "和"Z "的末尾带有空格字符。
Spark在处理分区列名时,会对列名中的特殊字符(包括空格)进行URL编码,空格会被转换为%20,最终生成的分区文件夹名称就会变成类似X%20=xxx的形式,看起来像是乱码。
解决方法非常直接,只需去掉列名前后的空格,修改后的代码如下:
silver_path=data_lake_container+"/"+ destination["folder"] df_date.write \ .format("delta") \ .mode("overwrite") \ .option("header","true") \ .option("overwriteSchema", "true") \ .option("path", silver_path) \ .partitionBy("X","Y","Z") \ .saveAsTable('Table_name') # External table
这样生成的分区文件夹就会显示为预期的X=xxx、Z=xxx格式。
内容的提问来源于stack exchange,提问作者Sreekanth TN
相关产品推荐
相关产品推荐

