如何使用Java中的BasicDataSource()连接将数据帧写为表?

时间:2018-01-29 06:36:57

标签: java jdbc spark-dataframe

在我的应用程序中,我使用BasicDataSource()从外部JAR(引用文件路径)创建了临时JDBC连接。 我可以使用BasicDataSource()读取表。我将获得的ResultSet从Spark API - resultSetToRows()转换为具有特定架构的Dataframe。 但我无法使用相同的连接将数据帧作为新表写入MySQL。如果有人有任何建议,请分享!

var urls = Array(new URL("file:///E:/mysql-connector-java-5.1.42-bin.jar"));
var urlcl = new URLClassLoader(urls);
var claz:Class[_] = Class.forName("com.mysql.jdbc.Driver",true,urlcl);
var driv = claz.newInstance().asInstanceOf[Driver];
DriverManager.registerDriver(driv);

var datasource = new BasicDataSource();
datasource.setUsername("username");
datasource.setPassword("xxxxxxxxxx");
datasource.setDriverClassName("com.mysql.jdbc.Driver");
datasource.setDriverClassLoader(urlcl);
datasource.setUrl("jdbc:mysql://localhost:3306/world");

使用上面的连接datasource我可以获取表值作为ResultSet并使用Spark将它们转换为数据帧。     如何使用上述连接将获取的数据帧作为新表写入MySQL?

提前致谢!

0 个答案:

没有答案