雅典娜与 R 的联系

Athena Connection with R

我是雅典娜的新手。我想把它和 R

联系起来
Sys.getenv()
    URL <- 'https://s3.amazonaws.com/athena-downloads/drivers/AthenaJDBC42_2.0.14.jar'
fil <- basename(URL)
if (!file.exists(fil)) download.file(URL, fil)

drv <- JDBC(driverClass="com.simba.athena.jdbc.Driver", fil, identifier.quote="'")

这是错误信息

Error in .jfindClass(as.character(driverClass)[1]) : 
  java.lang.ClassNotFoundException

引用了这篇文章 https://aws.amazon.com/blogs/big-data/running-r-on-amazon-athena/

   con <- jdbcConnection <- dbConnect(drv, 'jdbc:awsathena://athena.ap-south-1.amazonaws.com:443/',
                                   s3_staging_dir="s3://aws-athena-query-results-ap-south-1-region/",
                                   user=("xxx"),
                                   password=("xxx"))  

需要帮助真的苦苦挣扎了两天

提前致谢。我下载了 jar 文件和 java.

您使用的是较新的 driver 版本,driver 现在由 simba 开发,因此 driver class 名称已更改。

driver class 现在是 com.simba.athena.jdbc.Driver

您可能还想查看 AWR.Athena - 一个与 Athena 交互的不错的 R 包。

如果您仍然无法使用 Athena 的 JDBC 驱动程序,您可以随时尝试:RAthena or noctua。这两个软件包选择使用 AWS SDK 来连接到 AWS Athena。

RAthena 使用 Python boto3 sdk (similar to pyathena), through reticulate.

noctua 使用 R paws sdk.

代码示例:

library(DBI)

# connect to AWS
# using ~/.aws/credentials to store aws credentials
con <- dbConnect(RAthena::athena(),
                 s3_staging_dir = "s3://mybucket/")

# upload some data into aws athena
dbWriteTable(con, "iris", iris)

# query iris in aws athena
dbGetQuery(con, "select * from iris")

注意: noctua 的工作方式与上面的代码示例完全相同,但驱动程序是:noctua::athena()