M1芯片Mac Ventura13.4下RStudio通过ODBC连接Databricks社区版求助
解决M1 Mac Ventura 13.4上RStudio通过ODBC连接Databricks社区版的步骤
1. 重装依赖组件(解决路径冲突)
- 彻底清理并通过Homebrew安装unixODBC:
brew uninstall --force unixodbc brew install unixodbc - 安装ARM64版本的Simba Spark ODBC Driver(适配M1芯片),安装后默认驱动路径为
/Library/simba/spark/lib/libsparkodbc_sbu.dylib
2. 配置ODBC驱动与DSN
配置驱动定义文件
编辑/opt/homebrew/etc/odbcinst.ini(Homebrew版unixODBC默认读取路径),添加驱动配置:
[Simba Spark ODBC Driver] Driver=/Library/simba/spark/lib/libsparkodbc_sbu.dylib Setup=/Library/simba/spark/lib/libsparkodbc_sbu.dylib Description=Simba Spark ODBC Driver for Mac ARM64
配置Databricks社区版DSN
编辑/opt/homebrew/etc/odbc.ini,添加自定义DSN(替换为你的集群信息):
[Databricks_Community] Driver=Simba Spark ODBC Driver Host=community.cloud.databricks.com Port=443 HTTPPath=/sql/1.0/warehouses/<你的集群仓库ID> UID=<你的Databricks登录邮箱> PWD=<你的Databricks登录密码> SSL=1 ThriftTransport=2 AuthMech=3
注:
HTTPPath可从Databricks集群详情页的「JDBC/ODBC」选项卡复制;AuthMech=3对应用户名密码认证,适配社区版无令牌的限制。
3. 配置RStudio环境变量
编辑~/.Renviron文件,添加以下内容后重启RStudio:
ODBCSYSINI=/opt/homebrew/etc ODBCINI=/opt/homebrew/etc/odbc.ini
4. RStudio连接测试
使用DBI和odbc包验证连接:
library(DBI) library(odbc) # 通过DSN建立连接 con <- dbConnect(odbc::odbc(), "Databricks_Community") # 测试读取数据 dbListTables(con) dbGetQuery(con, "SELECT * FROM your_table LIMIT 10") # 关闭连接 dbDisconnect(con)
常见问题排查
- 若仍报
[unixODBC][Driver Manager]Data source name not found:- 执行
odbcinst -j查看unixODBC默认配置路径,确保odbcinst.ini、odbc.ini的位置与输出一致 - 确认驱动路径为ARM64版本的
libsparkodbc_sbu.dylib,避免混用x86版本的libsparkodbc.dylib
- 执行
- 若连接超时:
确认Databricks集群处于运行状态,HTTPPath、主机地址、端口(固定443)配置无误
内容的提问来源于stack exchange,提问作者wdefreit
相关产品推荐
相关产品推荐

