Sto cercando di capire come utilizzare il nuovo DataFrameWriter
per scrivere i dati su un database JDBC. Non riesco a trovare alcuna documentazione per questo, anche se guardando il codice sorgente sembra che dovrebbe essere possibile.Salvataggio/esportazione di DataFrame trasformato in JDBC/MySQL
Un esempio banale di quello che sto cercando si presenta così:
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")
questo non funziona - io alla fine con questo errore:
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)
non sono sicuro se Sto facendo qualcosa di sbagliato (perché si sta risolvendo su DefaultSource invece di JDBCRDD per esempio?) O se scrivere su un database MySQL esistente non è possibile usando l'API DataFrames di Spark.
Non è la fonte del problema, ma nell'esempio manca la chiamata 'carica'. – zero323