запрос обновления в Spark SQL

интересно, могу ли я использовать запрос обновления в sparksql так же, как:

sqlContext.sql("update users set name = '*' where name is null")

Я получил ошибку:

org.apache.spark.sql.AnalysisException: 
Unsupported language features in query:update users set name = '*' where name is null

Если sparksql не поддерживает запрос обновления или я пишу код неправильно?

1 ответов


Spark SQL не поддерживает UPDATE заявления.

улей начал поддерживать UPDATE начиная с версии улья 0.14. Но даже с Hive он поддерживает обновления / удаления только в тех таблицах, которые поддерживают сделки, это упоминается в улей документации.

см. ответы на форумах databricks, подтверждающие это обновления / удаления не поддерживаются в Spark SQL как не поддерживает транзакции. Если мы думаем, что поддержка случайных обновлений очень сложна с большинством форматов хранения больших данных. Это требует сканирования огромных файлов, обновления конкретных записей и перезаписи потенциально TBs данных. Это не обычный SQL.