1

os: centosFunken und aws Rotverschiebung: java.sql.SQLException: keine passenden Treiber für jdbc gefunden: Rotverschiebung: //xxx.us-west-2.redshift.amazonaws.com: 5439

Funke: 1.6 0,1

sbt: build.sbt

libraryDependencies ++= { 
Seq(
    "org.apache.spark" %% "spark-core" % "1.6.1" % "provided", 
    "com.amazonaws" % "aws-java-sdk" % "1.10.75", 
    "com.amazonaws" % "amazon-kinesis-client" % "1.1.0", 
    "com.amazon.redshift" % "jdbc4" % "1.1.7.1007" % "test" 
) 
} 
resolvers ++= Seq(
    "redshift" at "https://s3.amazonaws.com/redshift-downloads/drivers/RedshiftJDBC4-1.1.7.1007.jar" 
     ) 

Funken App:

val redshiftDriver = "com.amazon.redshift.jdbc4.Driver" 
Class.forName(redshiftDriver) 

ich die Rotverschiebung Treiber angegeben haben, und aktualisiert mit url usw. . Hier, Dokumentation folgende AWS offiziell: http://docs.aws.amazon.com/redshift/latest/mgmt/connecting-in-code.html

Aber ich bin immer noch immer Fehler unter:

java.sql.SQLException: No suitable driver found for jdbc:redshift://xxx.us-west-2.redshift.amazonaws.com:5439 

ich gegoogelt und jemand sagte, das Gefäß gegeben werden sollte, um Classpath? Könnte mir bitte jemand hier helfen? Vielen Dank

Antwort

0

Gelöst:

nur sauber alle zwischengespeicherten Sachen, und alles von Grund auf wieder bauen, und dann ist es arbeitet

hinzufügen auf:

Databricks implementiert diese Lib, die unser Leben viel leichter interaktionsbedingte Rotverschiebung innerhalb Spark machen könnte

// Get some data from a Redshift table 
val df: DataFrame = sqlContext.read 
    .format("com.databricks.spark.redshift") 
    .option("url", "jdbc:redshift://redshifthost:5439/database?user=username&password=pass") 
    .option("dbtable", "my_table") 
    .option("tempdir", "s3n://path/for/temp/data") 
    .load()