在DBFS中删除文件夹出现SQL Parse Exception如何解决
解决Databricks删除dbfs:/databricks-results/路径抛出SQL Parse Exception异常的问题
报错原因
dbfs:/databricks-results/是Databricks官方托管的系统级内置路径,用于存储平台生成的SQL查询、可视化组件的临时结果数据,根路径默认被锁定不允许用户直接执行递归删除操作,同时如果执行环境不匹配也会触发解析异常。
可行解决方法
- 检查代码执行环境:如果你的代码写在SQL类型的单元格中,需要在代码第一行添加
%python魔法命令指定执行环境,否则Databricks会把Python代码当做SQL语句解析,直接抛出SQL Parse Exception,示例:
%python # 后续写dbutils相关代码
- 不要直接删除根路径,改为遍历删除路径下的所有子文件/子文件夹即可,完整代码如下:
%python # 先列举路径下的所有子项 result_items = dbutils.fs.ls("dbfs:/databricks-results/") # 遍历逐个删除子项 for item in result_items: dbutils.fs.rm(item.path, recurse=True)
- 权限校验:如果执行上述代码仍然报错,需要确认当前账号持有
Databricks Results Access权限,或Workspace管理员权限,普通用户默认没有该路径的删除权限,可联系workspace管理员为你开通对应路径的读写删除权限。
补充说明
dbfs:/databricks-results/路径下的内容默认有自动生命周期清理规则,超过30天的历史结果文件会被系统自动删除,不需要手动批量清理。你也可以在工作区管理设置中调整结果文件的保留周期,减少手动维护的成本。
内容的提问来源于stack exchange,提问作者Tranquil Oshan
相关产品推荐
相关产品推荐

