簡體   English   中英

spark javaRDD 輸出到數據庫

[英]spark javaRDD output to database

請幫助我了解將spark javaRDD輸出保存到數據庫中的最佳方法是什么?

我應該編寫 spark java 代碼來將RDD保存到數據庫中嗎? 這種方法的缺點是什么?

或者我應該使用sqoop將輸出文件保存到數據庫中?

有沒有其他方法可以做到這一點?

謝謝

使用數據框並將數據保存到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);

您可以使用兩種方法將結果寫回數據庫。

  1. 使用類似 DBOutputFormat 的東西並配置它

  2. 在要保存的 RDD 上使用 foreachPartition 並傳入一個函數,該函數創建與 MySQL 的連接並將結果寫回。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM