Сохранение / экспорт преобразованного DataFrame обратно в JDBC / MySQL
Я пытаюсь понять, как использовать новыйDataFrameWriter
записать данные обратно в базу данных JDBC. Я не могу найти какую-либо документацию для этого, хотя, глядя на исходный код, кажется, что это возможно.
Тривиальный пример того, что я пытаюсь сделать, выглядит следующим образом:
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")
Это не работает - я получаю эту ошибку:
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)
Я не уверен, что делаю что-то не так (например, почему он разрешается в DefaultSource вместо JDBCRDD?) Или если запись в существующую базу данных MySQL просто невозможна с помощью API Spark DataFrames.