sparkjavardd输出到数据库

w8biq8rn  于 2021-06-04  发布在  Sqoop
关注(0)|答案(2)|浏览(384)

请帮助我了解什么是保存输出的最佳方法 spark javaRDD 进入数据库?
我应该编写spark java代码来保存吗 RDD 进入数据库?这种方法的缺点是什么?
或者我应该用 sqoop 将输出文件保存到数据库中?
还有别的办法吗?
谢谢

cld4siwp

cld4siwp1#

有两种方法可用于将结果写回数据库。
使用dboutputformat之类的工具并进行配置
在要保存的rdd上使用foreachpartition并传入一个函数,该函数创建到mysql的连接并将结果写回。

tv6aics1

tv6aics12#

使用dataframe并将数据保存到sql server

SQLContext sqlcontext=new SQLContext(context);
DataFrame outDataFrame=sqlcontext.createDataFrame(finalOutPutRDD, WebHttpOutPutVO.class);
Properties prop = new java.util.Properties();
prop.setProperty("database", "Web_Session");
prop.setProperty("user", "user");
prop.setProperty("password", "pwd@123");
prop.setProperty("driver", "com.microsoft.sqlserver.jdbc.SQLServerDriver");
outDataFrame.write().mode(org.apache.spark.sql.SaveMode.Append).jdbc("jdbc:sqlserver://<Host>:1433", "test_table", prop);

相关问题