请帮助我了解什么是保存输出的最佳方法 spark javaRDD 进入数据库?我应该编写spark java代码来保存吗 RDD 进入数据库?这种方法的缺点是什么?或者我应该用 sqoop 将输出文件保存到数据库中?还有别的办法吗?谢谢
spark javaRDD
RDD
sqoop
cld4siwp1#
有两种方法可用于将结果写回数据库。使用dboutputformat之类的工具并进行配置在要保存的rdd上使用foreachpartition并传入一个函数,该函数创建到mysql的连接并将结果写回。
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);
2条答案
按热度按时间cld4siwp1#
有两种方法可用于将结果写回数据库。
使用dboutputformat之类的工具并进行配置
在要保存的rdd上使用foreachpartition并传入一个函数,该函数创建到mysql的连接并将结果写回。
tv6aics12#
使用dataframe并将数据保存到sql server