是否可以直接在外部数据库表上执行删除和更新操作,比如在 ORACLE 中,使用 Spark
Posted
技术标签:
【中文标题】是否可以直接在外部数据库表上执行删除和更新操作,比如在 ORACLE 中,使用 Spark【英文标题】:Is it possible to perform Delete and Update operations directly on External Database Tables, like in ORACLE, using Spark 【发布时间】:2018-08-28 06:47:26 【问题描述】:我需要知道是否可以使用 Spark 删除 Oracle 数据库中表的行。 因为,我想使用同一个数据库表作为中间存储选项,一旦批处理操作完成,里面的数据应该被删除,但表应该被持久化。 其次,我想使用 Spark 在 Oracle 数据库上运行一些更新命令,所以任何帮助都会很重要。
【问题讨论】:
答案有帮助吗? 【参考方案1】:对于 mysql,我使用以下内容进行插入。同样,您可以构建适当的更新或删除语句。需要设置jdbc props、connections等。
我假设你的意思是这个,而不是通过 DF/DS.write 追加...
mutateStatement.execute (s"insert into sample (k,v) values($val1, $val2)")
请注意,有些人正确地指出这可能会受到 SQL 注入的影响,并且批量更新中还有准备好的语句,这更安全。例如:Using JDBC PreparedStatement.addBatch in functional Scala code
【讨论】:
以上是关于是否可以直接在外部数据库表上执行删除和更新操作,比如在 ORACLE 中,使用 Spark的主要内容,如果未能解决你的问题,请参考以下文章
Laravel where() 和 orderBy() 在外部服务器上的关系表上