【问题标题】:Connecting to Athena via R通过 R 连接到 Athena
【发布时间】:2017-03-08 22:43:39
【问题描述】:

我指的是 this article 用于将 R 连接到 Athena。

在定义驱动程序时,我收到以下错误:

.jfindClass(as.character(driverClass)[1]) 中的错误:找不到类

我做了一些研究,我到达了this page。接受的答案有一条说明相同问题的评论。但是,提供的解决方案(即重新启动 R)不起作用。

到目前为止,我已经编写了以下代码。

library("pacman")
pacman::p_load("RJDBC")
pacman::p_load("dplyr")

# Downloading Athena driver to the working directory
URL <- 'https://s3.amazonaws.com/athena-downloads/drivers/AthenaJDBC41-1.0.0.jar'
fil <- basename(URL)
if (!file.exists(fil)) download.file(URL, fil)

# Defining driver
drv <- JDBC(driverClass="com.amazonaws.athena.jdbc.AthenaDriver", fil, identifier.quote="'")

我正在使用 RStudio,并且在 Windows 上运行它。 任何有关如何解决此问题的建议都将受到高度赞赏。

【问题讨论】:

  • 该博客的一个 cmet 在使用 Java 7 时提到了这个错误。你有什么 Java 版本?
  • @James 我使用以下命令获取正在使用的 Java 版本。 J("java.lang.System","getProperty","java.version") 输出:1.8.0_20.
  • @James 我也将 Java 更新为 1.8.0_121 但仍然是同样的错误。我也更新了环境变量。

标签: r amazon-athena


【解决方案1】:

download.file 命令默认以字符模式写入,而不是二进制。您应该指定二进制模式:

download.file(URL, fil, mode="wb")

【讨论】:

  • file.exists(fil) 确实通过了。我也尝试在定义驱动程序时传递完整路径,但仍然遇到相同的错误。
  • 下载的驱动程序已损坏。我从this link 下载了驱动程序,它工作正常。奇怪的是程序中给出的链接是同一个。
  • 好主意,这是关键。看起来 download.file 默认以字符模式写入,而不是二进制。对于二进制文件,正确的下载命令应该是 download.file(URL, fil, mode="wb")
  • 确认 James 的解决方案对我有用。您可能需要相应地更改答案。
猜你喜欢
  • 1970-01-01
  • 2015-01-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多