Удалить строки из таблицы Azure Sql, используя Azure Блоки данных с Scala - PullRequest
1 голос
/ 21 апреля 2020

Я использую Azure Базы данных с Scala, и моя цель состоит в том, чтобы удалить некоторые строки из таблицы Azure SQL.

Для этого я использую запрос на передачу с JDB C следующим образом:

val pushdown_query = s"(DELETE FROM ${table_name} WHERE dump_date = '2020-01-07') temp"
val res = spark.read.jdbc(jdbcUrl, pushdown_query, connectionProperties)  

Однако я получаю следующую ошибку:

com.microsoft.sqlserver.jdbc.SQLServerException: A nested INSERT, UPDATE, DELETE, or MERGE statement must have an OUTPUT clause.

Я добавил предложение OUTPUT в запрос на нажатие, чтобы решить эту проблему:

val pushdown_query = s"(DELETE FROM ${table_name} OUTPUT DELETED.dump_date WHERE dump_date = '2020-01-07') temp"

Но теперь я получаю следующую ошибку:

com.microsoft.sqlserver.jdbc.SQLServerException: A nested INSERT, UPDATE, DELETE, or MERGE statement is not allowed in a SELECT statement that is not the immediate source of rows for an INSERT statement.

Что я делаю не так? Как мне этого добиться? Есть ли лучший способ?

Заранее спасибо.

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