2017-03-08 14 views
1

Rをアテーナに接続するためのthis articleを参照しています。Rを経由してアテナに接続

、私は次のようなエラーになっていますドライバを定義する場合:([1])as.character(driverClass).jfindClassで

エラー:

クラスが見つからない私は、いくつかの研究と私は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で実行しています。 この問題の解決方法に関するご提案は高く評価されます。

+1

このブログのコメントの1つに、Java 7を使用しているときにこのエラーが記載されています。どのJavaバージョンがありますか? – James

+0

@James次のコマンドを使用して、使用されているJavaのバージョンを取得しました。 'J(" java.lang.System "、" getProperty "、" java.version ")' **出力:1.8.0_20 **。 – ganapathy

+0

@Jamesまた、Javaを** 1.8.0_121 **に更新しましたが、それと同じエラーです。環境変数も更新しました。 – ganapathy

答えて

3

download.fileコマンドは、バイナリではなく、デフォルトで文字モードで書き込みます。

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

file.exists(fil)は成功しません。また、私はドライバを定義している間に完全なパスを通過しようとしましたが、同じエラーが発生しました。 – ganapathy

+0

ダウンロードされたドライバが壊れています。私は[このリンク](https://s3.amazonaws.com/athena-downloads/drivers/AthenaJDBC41-1.0.0.jar)からドライバをダウンロードし、うまくいきました。奇妙なことは、プログラムで与えられたリンクは同じものです。 – ganapathy

+2

良い考え方、それが鍵です。 download.fileはバイナリではなく、デフォルトで文字モードで書き込みを行うように見えます。正しいダウンロードコマンドは、バイナリの場合はdownload.file(URL、fil、mode = "wb") 'でなければなりません。 – James

関連する問題