You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Databricks创建ADLS Gen2表时遇Missing cloud file system scheme错误求助

解决Databricks挂载ADLS Gen2后创建Parquet表的URI错误问题

可行解决方案

1. 替换OPTIONS(path)为LOCATION子句

SQL的CREATE TABLE语句对挂载路径的适配逻辑和DataFrame API不同,改用LOCATION指定存储位置而非OPTIONS(path),可规避URI格式校验问题。修改后的语句如下:

CREATE TABLE IF NOT EXISTS events 
USING parquet 
LOCATION "/mnt/training/ecommerce/events/events.parquet";

OPTIONS(path)更适合直接指定云存储原生路径(如abfss://xxx),而挂载路径属于Databricks内部映射路径,用LOCATION适配性更好。

2. 验证挂载路径的有效性与权限

  • 执行dbutils.fs.ls("/mnt/training/ecommerce/events/"),确认能正常列出目录下的文件,且目标路径具备写入权限。
  • 检查路径拼写:ADLS Gen2路径区分大小写,确保路径无拼写错误、无多余斜杠。

3. 直接使用ADLS原生路径(绕过挂载)

如果挂载方式仍有问题,可直接使用ADLS Gen2的abfss原生路径,前提是Databricks已配置好对应访问凭据(服务主体、SAS令牌等):

CREATE TABLE IF NOT EXISTS events 
USING parquet 
OPTIONS (path "abfss://<容器名>@<存储账户名>.dfs.core.windows.net/training/ecommerce/events/events.parquet");

替换<容器名>和<存储账户名>为实际信息即可。

4. 修正外部位置配置(若已使用)

如果之前尝试添加外部位置,需确认:

  • 外部位置的URL是ADLS原生abfss路径,而非挂载路径。
  • 关联的凭据拥有读写权限。
  • 创建表时直接引用外部位置名称:
CREATE TABLE IF NOT EXISTS events 
USING parquet 
LOCATION "<外部位置名称>";

补充说明

你能通过spark.read.csv读取挂载路径,是因为DataFrame API对挂载路径的兼容性更强,而SQL的CREATE TABLE在路径参数校验上更严格,因此需要调整语法适配挂载场景。

内容的提问来源于stack exchange,提问作者Patterson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 04:35:11