我有一个火花流程序,它将在15分钟的窗口中聚合和处理数据。需要将其输出推送到oracle表。
这里最好的方法是什么?
如果我将数据写入配置单元然后使用sqoop将其推送到oracle,那么我将不得不以某个频率安排我的sqoop作业,并且sqoop应该以某种方式理解它之前提取的数据以及它应该是什么delta现在从蜂巢拉。我不确定sqoop是否可以做到这一点。
你会建议什么? 谢谢。答案 0 :(得分:2)
您还可以在Spark中连接到Oracle DB 例如:
r2.foreachPartition {
it =>
val conn= DriverManager.getConnection(url,username,password)
val del = conn.prepareStatement ("INSERT INTO tweets (ID,Text) VALUES (?,?) ")
for (bookTitle <-it)
{
del.setString(1,bookTitle.toString)
del.setString(2,"my input")
del.executeUpdate
}
}
OR
val employees = sqlContext.load("jdbc", Map("url" -> "jdbc:oracle:thin:user/pass@//localhost:1521/single", "dbtable" -> "hr.employees"))