R 中的 ODBC 库 - 出现 "Data source name not found and no default driver specified" 错误

ODBC Library in R - getting "Data source name not found and no default driver specified" Error

我让驱动程序正常工作,因为我完美地使用了 Power BI。我正在切换到 R 进行一些计算,现在这个错误正在蔓延

install.packages("odbc")

    library(odbc)

    con<- dbConnect(odbc::odbc(),
                     driver = "[Cloudera ODBC Driver for Apache Hive]",
                     host = "[Confidential]",
                     Schema = "[Confidential]",
                     user = ("Confidential"),
                     password = ("Confidential"),
                     port = 8443)

我的 ODBC 连接是 64 位

这里有我需要使用的特定连接字符串吗?

这里有四个问题需要考虑:

  1. 原来,驱动程序周围有括号,需要将其删除。

    # original
    con<- dbConnect(odbc::odbc(),
                    driver = "[Cloudera ODBC Driver for Apache Hive]", ...)
    # fixed
    con<- dbConnect(odbc::odbc(),
                    driver = "Cloudera ODBC Driver for Apache Hive", ...)
    
  2. 怀疑是标签user=password=不对,需要改一下。根据 https://db.rstudio.com/databases/hive/,我认为它们应该分别是 UID=PWD=

  3. 由于连接错误表明存在连接加密 (SSL) 问题,因此应向 DBI::dbConnect 提供更多参数以设置正确的选项。老实说,我不知道它们是什么,而且我找不到关于它们是什么的文档,所以我忽略了这个问题。关于第 4 期 ...

  4. 你说你在你的 "ODBC Data Source Administrator (64 Bit)" 中配置了这个,这是一个系统范围的命名连接配置,你使用这个Power BI 的配置(意味着那里的连接良好)。在上面的代码中,您没有使用该系统配置,而是从头开始定义它。由于系统配置已知有效,您可以使用它而不是重新定义,如

    con <- DBI::dbConnect(odbc::odbc(), dsn = "myhive", UID = "myuser", PWD = "mypass")
    

    其中 myhive 是您在 ODBC 数据源管理中分配给配置的名称。