Databricks Runtime查询AWS Glue/Athena视图报空字符串无法创建路径错误
问题复现
在Databricks集群上通过PySpark读取AWS Athena中创建的视图时,抛出如下错误:
java.lang.IllegalArgumentException: Can not create a Path from an empty string
该视图基于指向S3 Parquet文件的Glue表构建,经排查确认所有相关访问权限配置均无异常。
根因说明
- AWS Athena创建视图时未遵循标准Hive视图的元数据存储规范,不会向Glue metastore的标准
ViewText字段写入视图定义内容,而是将视图结构化信息存储在Athena自定义的非标准元数据字段中 - Databricks对接AWS Glue metastore读取视图时,默认读取
ViewText字段解析视图的底层表路径,读取到空值后就会触发路径解析失败的异常
可行解决方案
- 方案1:Databricks侧重建视图:基于Glue中的底层源表,使用Spark SQL语法重新创建对应逻辑的视图,示例命令:
后续直接访问Databricks侧创建的视图即可正常读取数据CREATE VIEW <your_view_name> AS <your_view_query_logic> - 方案2:直接读取底层Glue表:如果不需要复用Athena侧的视图逻辑,可跳过视图层直接读取Athena视图依赖的底层Glue S3表,不会触发路径解析异常
- 方案3:JDBC直连Athena读取:在Databricks中通过Athena官方JDBC驱动直接对接Athena服务查询视图,绕开Glue metastore的视图解析逻辑
内容的提问来源于stack exchange,提问作者Yair Nevet
相关产品推荐
相关产品推荐

