Ich möchte meine Daten in Redshift mit Notebook Zeppelin erkunden. Ein kleiner EMR-Cluster mit Spark läuft dahinter. Ich lade databricks' Funken Rotverschiebung BibliothekAWS Redshift Treiber in Zeppelin
%dep
z.reset()
z.load("com.databricks:spark-redshift_2.10:0.6.0")
und dann
import org.apache.spark.sql.DataFrame
val query = "..."
val url = "..."
val port=5439
val table = "..."
val database = "..."
val user = "..."
val password = "..."
val df: DataFrame = sqlContext.read
.format("com.databricks.spark.redshift")
.option("url", s"jdbc:redshift://${url}:$port/$database?user=$user&password=$password")
.option("query",query)
.option("tempdir", "s3n://.../tmp/data")
.load()
df.show
aber ich habe den Fehler
java.lang.ClassNotFoundException: Could not load an Amazon Redshift JDBC driver; see the README for instructions on downloading and configuring the official Amazon driver
I Option hinzugefügt
option("jdbcdriver", "com.amazon.redshift.jdbc41.Driver")
aber nicht für desto besser. Ich denke, ich muss den JDBC-Treiber von redshift irgendwo angeben, so wie ich es tun würde - Treiber-Klassen-Pfad zu Spark-Shell, aber wie macht man das mit Zeppelin?
Angesichts der Fehlermeldung sieht es so aus, als ob Sie einige zusätzliche Konfiguration vornehmen müssen. Sind Sie tatsächlich den Anweisungen aus dieser "README" gefolgt? Dies ist keine generische Fehlermeldung, sondern eine vom Rotverschiebungs-JDBC-Treiber erzeugte; Sie haben es installiert, aber es fehlt nur eine Konfiguration (oder zusätzliche Bibliotheken?). –