Перезапись Spark удаляет привилегии уже существующих таблиц в db2 - PullRequest
0 голосов
/ 03 января 2019

Я использую кластер искр для перемещения файлов паркета в таблицы DB2.Эти таблицы DB2 определены и предварительно созданы, но пусты.Некоторым пользователям также предоставляются некоторые привилегии.Однако, если я использую этот код в spark:

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

для перемещения данных паркета, он удаляет статус предоставления (в SYSIBMADM) и, кажется, удаляет и создает таблицу вместо использования того, что уже существует.Я не хочу использовать SaveMode.Append, поскольку в некоторых случаях в нем могут быть данные.Есть ли способ, которым я могу удалить строки в таблице внутри Spark (чтобы потом я мог использовать «Добавить»), или для того, чтобы принудительно использовать уже созданную таблицу?Спасибо.

1 Ответ

0 голосов
/ 03 января 2019

В 2.1 Spark добавлена ​​поддержка truncate JDBC DataFrameWriter.

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

Вот подробная информация о усечение

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...