将ADF复制生成的Parquet文件关联Databricks SQL时遇权限错误求助
解决Databricks SQL关联ADF生成的Parquet文件报错及格式问题
1. 修复ABFSS路径格式错误
你遇到的invalid authority错误源于ABFSS路径格式不符合规范。正确的ABFSS路径结构为:
abfss://<容器名称>@<存储账户名称>.dfs.core.windows.net/<文件或目录路径>
你的当前路径缺失了容器名称,假设存储容器名为data-container,修正后的建表语句应为:
create table people_db.GLAccount USING PARQUET LOCATION "abfss://data-container@dlsxxxx.dfs.core.windows.net/datamesh/PricingAnalysis/rdv_60_134.vGLAccount.parquet"
2. 单个Parquet文件的建表验证
Databricks支持直接关联单个Parquet文件,修复路径后可先通过以下语句测试文件是否可访问:
SELECT * FROM parquet.`abfss://<容器名>@dlsxxxx.dfs.core.windows.net/datamesh/PricingAnalysis/rdv_60_134.vGLAccount.parquet`
若该查询能返回数据,说明路径和权限无问题,再执行建表操作即可。
3. 调整ADF配置生成目录式Parquet文件
为贴合Databricks的常规使用模式,建议修改ADF复制活动配置,生成目录下的多份Parquet文件:
- 在ADF复制活动的sink设置中,找到复制行为,选择按分区/分桶写入或启用分片
- 将sink输出路径设为目录(如
datamesh/PricingAnalysis/GLAccount/)而非具体文件名,ADF会自动在该目录下生成多个Parquet文件 - 后续Databricks建表时指向该目录:
create table people_db.GLAccount USING PARQUET LOCATION "abfss://<容器名>@dlsxxxx.dfs.core.windows.net/datamesh/PricingAnalysis/GLAccount/"
4. 存储访问权限排查
若路径修复后仍报错,检查以下配置:
- 确认Databricks集群已配置Azure存储访问凭证(如添加存储密钥、启用托管身份)
- 验证存储容器权限:私有容器需通过凭证访问,公共容器需确保Databricks网络可正常访问
内容的提问来源于stack exchange,提问作者Harry Leboeuf
相关产品推荐
相关产品推荐

