2016-04-05 4 views
3

Bei Verwendung der JDBC-Funktion R zu amazon Rotverschiebung zu verbinden (Ich verwende Windows 10) bekomme ich folgende Fehlermeldung:Fehler zu amazon Rotverschiebung von R verbinden - Fenster 10

Error in .jfindClass(as.character(driverClass)[1]) : class not found 

Der Code Ich bin Laufen ist

install.packages("rJava") 
install.packages("RJDBC") 
library(rJava) 
library(RJDBC) 

download.file('http://s3.amazonaws.com/redshift-downloads/drivers/RedshiftJDBC41-1.1.13.1013.jar','RedshiftJDBC41-1.1.13.1013.jar') 
driver <- JDBC("com.amazon.redshift.jdbc41.Driver", "RedshiftJDBC41-1.1.13.1013.jar", identifier.quote = "`") 

Für weitere Infos über den Fehler erhalte ich diese runned:

.jclassLoader()$setDebug(1L) 

und die vollständige Fehlertrace i s:

RJavaClassLoader: added 'RedshiftJDBC41-1.1.13.1013.jar' to the URL class path loader 
RJavaClassLoader: adding Java archive file 'RedshiftJDBC41-1.1.13.1013.jar' to the internal class path 
RJavaClassLoader: added 'C:/Users/user/Documents/R/win-library/3.2/RJDBC/java/RJDBC.jar' to the URL class path loader 
RJavaClassLoader: adding Java archive file 'C:/Users/user/Documents/R/win-library/3.2/RJDBC/java/RJDBC.jar' to the internal class path 
[email protected](com.amazon.redshift.jdbc41.Driver) 
- URL loader did not find it: java.lang.ClassNotFoundException: com.amazon.redshift.jdbc41.Driver 
RJavaClassLoader.findClass("com.amazon.redshift.jdbc41.Driver") 
- trying class path "C:\Users\user\Documents\R\win-library\3.2\rJava\java" 
Directory, can get 'C:\Users\user\Documents\R\win-library\3.2\rJava\java\com\amazon\redshift\jdbc41\Driver.class'? NO 
- trying class path "C:\Users\user\Documents\R\win-library\3.2\RJDBC\java\RJDBC.jar" 
JAR file, can get 'com/amazon/redshift/jdbc41/Driver'? NO 
- trying class path "C:\Users\user\Desktop\Pricing" 
    Directory, can get 'C:\Users\user\Desktop\Pricing\com\amazon\redshift\jdbc41\Driver.class'? NO 
- trying class path "C:\Users\user\Desktop\Pricing\RedshiftJDBC41-1.1.9.1009.jar" 
JAR file, can get 'com/amazon/redshift/jdbc41/Driver'? NO 
- trying class path "RedshiftJDBC41-1.1.9.1009.jar" 
JAR file, can get 'com/amazon/redshift/jdbc41/Driver'? NO 
- trying class path "." Directory, can get '.\com\amazon\redshift\jdbc41\Driver.class'? NO 
- trying class path "C:\RedshiftJDBC41-1.1.9.1009.jar" 
JAR file, can get 'com/amazon/redshift/jdbc41/Driver'? NO 
- trying class path "RedshiftJDBC41-1.1.13.1013.jar" 
JAR file, can get 'com/amazon/redshift/jdbc41/Driver'? NO 
>> ClassNotFoundException 

Wenn Sie irgendeine Idee auf etwas haben, das könnte es toll wäre! Danke

Antwort

1

meine Empfehlung für Sie ist, Rotverschiebung mit RPostgreSQL-Paket zu verbinden.

install.packages("RPostgreSQL") 
library(RPostgreSQL) 
drv <- dbDriver("PostgreSQL") 
conn <-dbConnect(drv,host='host link',port='5439',dbname='dbname',user='xxx',password='yyy') 
dbSendQuery(conn,"insert your query") 
+0

Vielen Dank. Es ist tatsächlich wie ich es gemacht habe und es funktioniert! – Viola

1

Hallo, ich beziehe mich auf Ihr Stück Code

install.packages ("rjava") install.packages ("RJDBC") Bibliothek (rjava) Bibliothek (RJDBC)

download.file('http://s3.amazonaws.com/redshift-downloads/drivers/RedshiftJDBC41-1.1.13.1013.jar','RedshiftJDBC41-1.1.13.1013.jar') driver <- JDBC("com.amazon.redshift.jdbc41.Driver", "RedshiftJDBC41-1.1.13.1013.jar", identifier.quote = "`")

der Ort, an dem Sie den Treiber-Objekt zu schreiben, ist die Syntax

driver <- JDBC("CLASSNAME","PATH WHERE REDSHIFT JAR FILE IS DOWNLOADED')

Ich hatte den gleichen Fehler, Sobald ich merkte, dass ich nur den richtigen Weg setzen musste, konnte ich verbinden. Mein zweites Argument JDBC war 'C: \ Benutzer \ person.name \ Downloads \ RedshiftJDBC41-1.1.13.1013.jar'

this helps

3

Exakt gleiche Problem mich betroffen. Aus irgendeinem Grund griff download.file() eine beschädigte .jar. Dev in unserer Gruppe finden Sie das folgende Update:

  1. auslassen:

    download.file('http://s3.amazonaws.com/redshift-downloads/drivers/RedshiftJDBC41-1.1.13.1013.jar','RedshiftJDBC41-1.1.13.1013.jar')

  2. Statt die .jar-Download direkt von http://docs.aws.amazon.com/redshift/latest/mgmt/configure-jdbc-connection.html

  3. Kopieren Sie die .jar in Ihr Arbeitsverzeichnis.

  4. Rest des Codes ausführen.

+1

Genau das gleiche Problem! Ich habe 'download' Funktion von' Downloader'-Paket verwendet, um das Problem zu lösen. – discipulus

+1

Dies ist die Antwort. Andere Antworten behandeln das Problem nicht. Irgendetwas an 'download.file' beschädigt die .jar-Datei. – giraffehere

+0

[Das offizielle Tutorial von Amazon] (https://aws.amazon.com/blogs/big-data/connecting-r-with-amazon-redshift/) verwendet 'download.file()'. Diese Antwort ist wirklich die einzige Sache, die es gelöst hat. @giraffehere hat recht. AMAZON: Schrecklicher Weg, ein Tutorial zu beginnen. – Jarad

Verwandte Themen