从spark jdbc连接向数据库发送选项
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从spark jdbc连接向数据库发送选项相关的知识,希望对你有一定的参考价值。
我正在尝试将一个大型数据帧写入db2数据库,但我遇到了服务器上的日志,因为我的会话太大了。如何发送一个+c
标志,该标志用于插入命令从spark到db2,以便它一起绕过日志记录?有没有办法以某种方式从spark提交数据库命令?我可以从像scalike这样的db库发出命令,但不确定如何同时使用这两个命令。
答案
X-Y问题的一个很好的例子。
+c
似乎指的是关闭自动提交的Db2命令行处理器(CLP)的参数。
首先,既然你正在运行Spark,那么CLP就无处可去了。
其次,禁用自动提交,如果你能够这样做,只会使你的问题恶化,这似乎是你的日志空间不足:提交频率较低,你需要更多的日志空间,而不是更少。
第三,当使用SQL接口(例如JDBC(由Spark使用)或ODBC)时,您不可能“一起绕过日志记录”。
在这种情况下,您可以做的最好的事情是与负责相关数据库的DBA交谈,以找出调整Spark生成的查询或请求增加日志空间的方法。
以上是关于从spark jdbc连接向数据库发送选项的主要内容,如果未能解决你的问题,请参考以下文章
从Greenplum上的表中读取数据时,如何在Spark-jdbc应用程序的选项“dbtable”中指定子查询? [复制]