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

使用JDBC连接Databricks默认集群读取表至PySpark DataFrame异常求助

问题解决:Databricks JDBC读取表返回重复列名而非真实数据

可能原因分析

出现返回结果全是列名的情况,通常是以下问题导致:

  • 表名引用未指定完整的数据库+表名路径
  • JDBC URL参数存在冗余或配置错误
  • 驱动版本与Databricks集群版本不兼容

分步解决方案

1. 修正表名引用方式

将dbtable选项从my_table2改为完整表名格式:default.my_table2,明确指定默认数据库下的目标表。修改后代码片段:

df_1 = spark.read.format("jdbc")\
.option("url", url)\
.option("driver", driver_class)\
.option("dbtable", 'default.my_table2')\
.load()

2. 清理JDBC URL冗余参数

你的URL中重复写了两次AuthMech=3,建议清理为标准格式:

url = 'jdbc:databricks://[workspace domain]:443/default;transportMode=http;ssl=1;AuthMech=3;httpPath=[path];UID=token;PWD=[your_access_token]'

3. 改用Query方式验证

若上述修改无效,尝试通过query选项直接执行SQL查询,绕过表名解析问题:

df_1 = spark.read.format("jdbc")\
.option("url", url)\
.option("driver", driver_class)\
.option("query", "SELECT name FROM default.my_table2")\
.load()

4. 验证驱动兼容性

确保com.databricks.client.jdbc.Driver版本与你的Databricks集群版本匹配,可下载对应版本的JDBC驱动并放置到Spark的classpath中。

5. 检查权限与连接参数有效性

确认访问Token具备my_table2表的读取权限,同时验证JDBC URL中的httpPath是集群详情页"JDBC/ODBC"标签下的正确连接路径。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 05:48:24