Обрезать Oracle таблицу с помощью Spark - PullRequest
2 голосов
/ 19 июня 2020

мой первый вопрос здесь!

Я изучаю Spark, и пока он потрясающий. Теперь я пишу некоторые DF в Oracle, используя DF.write.mode(“append”).jdbc

. Теперь мне нужно усечь таблицу, так как я не хочу добавлять. Если я использую режим «перезаписи», таблица удалится и будет создана новая, но мне придется повторно ПРЕДОСТАВИТЬ пользователям доступ к ней. Не хорошо.

Могу ли я сделать что-то вроде усечения в Oracle с помощью Spark SQL? Открыт для предложений! Спасибо за ваше время.

1 Ответ

3 голосов
/ 19 июня 2020

Есть возможность заставить Spark усекать целевую Oracle таблицу вместо того, чтобы отбрасывать ее. Вы можете найти синтаксис https://github.com/apache/spark/pull/14086

spark.range(10).write.mode("overwrite").option("truncate", true).jdbc(url, "table_with_index", prop)

В зависимости от версий Spark, Oracle и JDB C драйвера существуют другие параметры, которые вы можете использовать для создания усечение в каскаде, как вы можете видеть из https://spark.apache.org/docs/latest/sql-data-sources-jdbc.html

По моему опыту, это работает на некоторых механизмах БД и во многом зависит от используемого вами JDB C, потому что не все из них поддерживают это

Надеюсь, это поможет

...