使用ABFS路径保存Spark DataFrame为表时目录存储异常咨询
解决Fabric Lakehouse中saveAsTable数据落入Unidentified文件夹的问题
问题原因
你当前的path仅指向Lakehouse的Tables根目录,Fabric Lakehouse要求每个表的数据必须存放在以表名命名的子文件夹下,否则系统会将无明确归属的路径数据归类到Unidentified文件夹。
修复方案
修改path参数,在末尾拼接表名,确保数据写入到Tables目录下的对应表子文件夹中:
dataframe\ .write\ .format("delta")\ .mode("overwrite")\ .partitionBy("year", "month")\ .option("path", f'abfss://WORKSPACE_NAME@onelake.dfs.fabric.microsoft.com/LAKEHOUSE_NAME.Lakehouse/Tables/{TABLE_NAME}')\ .saveAsTable(TABLE_NAME)
关键注意事项
- 确保
{TABLE_NAME}变量和saveAsTable(TABLE_NAME)中的表名完全一致,避免出现数据路径与元数据不匹配的情况 - 首次执行后,Lakehouse的Tables界面会正常显示该表,底层的
_delta_log和分区数据都会存放在Tables/{TABLE_NAME}目录下 - 使用
overwrite模式时会清空目标子目录的原有数据,执行前请确认数据无需备份
内容的提问来源于stack exchange,提问作者Andrii
相关产品推荐
相关产品推荐

