Ich versuche herauszufinden, wie man mit dem neuen DataFrameWriter
Daten in eine JDBC-Datenbank zurückschreibt. Ich kann keine Dokumentation dafür finden, obwohl es scheint, dass es möglich sein sollte, den Quellcode anzuschauen.Speichern/Exportieren von transformiertem DataFrame zurück zu JDBC/MySQL
Ein triviales Beispiel dafür, was ich wie folgt aussieht versuchen:
sqlContext.read.format("jdbc").options(Map(
"url" -> "jdbc:mysql://localhost/foo", "dbtable" -> "foo.bar")
).select("some_column", "another_column")
.write.format("jdbc").options(Map(
"url" -> "jdbc:mysql://localhost/foo", "dbtable" -> "foo.bar2")
).save("foo.bar2")
Dies funktioniert nicht - ich mit diesem Fehler am Ende:
java.lang.RuntimeException: org.apache.spark.sql.execution.datasources.jdbc.DefaultSource does not allow create table as select.
at scala.sys.package$.error(package.scala:27)
at org.apache.spark.sql.execution.datasources.ResolvedDataSource$.apply(ResolvedDataSource.scala:200)
Ich bin mir nicht sicher, ob Ich mache etwas falsch (warum löst es zum Beispiel auf DefaultSource anstatt auf JDBCRDD auf?) Oder wenn das Schreiben in eine bestehende MySQL-Datenbank einfach nicht möglich ist, indem man Sparks DataFrames API benutzt.
Es ist nicht die Ursache des Problems, aber Ihr Beispiel fehlt Ladebefehl. – zero323