Apache spark Spark overwrite删除db2中已有表的特权

Apache spark Spark overwrite删除db2中已有表的特权,apache-spark,db2,Apache Spark,Db2,我使用spark集群将拼花文件移动到DB2表中。这些DB2表是已定义和预制的,但为空。它还被授予一些用户的特权。但是,如果我在spark中使用此代码: ds.get .coalesce(1) .write .mode(SaveMode.Overwrite) .jdbc(fullJdbcUrl, tableName, props) 要移动拼花地板数据,它会删除授权状态(在SYSIBMADM中),并且似乎会删除并创建一个表,而不是使用已经存在的数据。我不想使用Sav

我使用spark集群将拼花文件移动到DB2表中。这些DB2表是已定义和预制的,但为空。它还被授予一些用户的特权。但是,如果我在spark中使用此代码:

ds.get
    .coalesce(1)
    .write
    .mode(SaveMode.Overwrite)
    .jdbc(fullJdbcUrl, tableName, props)

要移动拼花地板数据,它会删除授权状态(在SYSIBMADM中),并且似乎会删除并创建一个表,而不是使用已经存在的数据。我不想使用SaveMode.Append,因为在某些情况下,其中可能已经有数据。是否有一种方法可以删除Spark中表中的行(以便以后可以使用Append),或者强制它使用已经创建的表?谢谢。

在2.1中,Spark增加了对
truncate
JDBC DataFrameWriter的支持

ds.get
    .coalesce(1)
    .write
    .mode(SaveMode.Overwrite)
    .option("truncate", true)
    .jdbc(fullJdbcUrl, tableName, props)
以下是有关的详细信息