spark-sql数据同步到关系数据库,truncate表实现咨询?

spark-sql做数据同步从大数据平台到关系数据库,采用jdbc方式同部数据表,要求关系数据库表不能重新创建,其代码说明如下:
jdbcDF.write \

.format("jdbc") \\
.mode("overwrite") \\
.***option("truncate", "true")*** \\
.option("url", "jdbc:db2:dbserver") \\
.option("dbtable", "schema.tablename") \\
.option("user", "username") \\
.option("password", "password") \\
.save()

以上同步查询“sql\core\src\main\scala\org\apache\spark\sql\execution\datasources\jdbc\JdbcUtils.scala”,文件
/**

  • Truncates a table from the JDBC database.
    */

def truncateTable(conn: Connection, table: String): Unit = {

val statement = conn.createStatement
try {
  statement.executeUpdate(s"TRUNCATE TABLE $table")
} finally {
  statement.close()
}

}

此清表为“TRUNCATE TABLE tabname”,但 db2 要求有immediate参数
问下:
1.如何添加immediate参数,或有其他方式可以清空表吗,能写delete吗?
2.或spark.sql 在DB2上怎么直接执行sql语句 “TRUNCATE TABLE tabname immediate” 或 “delete from tabname ”

参与3

1同行回答

zhuqibszhuqibs  软件开发工程师 , Adidas
表要分区啊,就能truncate分区了啊,尽量不要用delete显示全部

表要分区啊,就能truncate分区了啊,尽量不要用delete

收起
互联网服务 · 2020-04-30
浏览1303

提问者

liveonsky
数据库开发工程师sr

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2019-04-28
  • 关注会员:2 人
  • 问题浏览:2067
  • 最近回答:2020-04-30
  • X社区推广