从spark jdbc连接向数据库发送选项

时间:2018-02-28 23:19:05

标签: apache-spark jdbc db2

我正在尝试将大型数据帧写入db2数据库,但我在服务器上运行的日志对于我的会话来说太大了。如何将一个+c标志与spark中的插入命令一起发送到db2,以便它一起绕过日志记录?有没有办法以某种方式从spark提交数据库命令?我可以从像scalike这样的db库发出命令,但不确定如何同时使用这两个命令。

1 个答案:

答案 0 :(得分:0)

X-Y问题的一个很好的例子。

+c似乎是指关闭自动提交的Db2命令行处理器(CLP)的参数。

首先,由于您正在运行Spark,因此CLP无处可去。

其次,禁用自动提交,如果你能够这样做,只会使你的问题恶化,这似乎是你的日志空间不足:提交频率较低,你需要更多的日志空间,而不是更少。

第三,在使用SQL接口(例如JDBC(由Spark使用)或ODBC)时,您不可能“一起绕过日志记录”。

在这种情况下,您可以做的最好的事情是与负责相关数据库的DBA交谈,以找出调整Spark生成的查询或请求增加日志空间的方法。