是否可以使用Spark直接在外部数据库表上执行删除和更新操作,例如在ORACLE中

时间:2018-08-28 06:47:26

标签: scala apache-spark pyspark apache-spark-sql

我需要知道是否可以使用Spark删除Oracle数据库中表的行。 因为,我要对中间存储选项使用相同的数据库表,并且一旦完成批处理操作,就应该删除其中的数据,但该表应保留下来。 其次,我想使用Spark在Oracle数据库上运行一些更新命令,因此可以提供任何帮助。

1 个答案:

答案 0 :(得分:0)

对于mysql,我将以下内容用于插入。同样,您可以构建适当的更新或删除语句。您需要设置jdbc属性,连接等。

我假设这是您的意思,而不是通过DF / DS.write的附加...

mutateStatement.execute (s"insert into sample (k,v) values(${val1}, ${val2})") 

请注意,有些人正确地指出这可能会受到SQL注入,并且在批处理更新中还准备了更安全的语句。例如:Using JDBC PreparedStatement.addBatch in functional Scala code