2016-05-30 12 views
5

Zastanawiam mogę użyć zapytania aktualizacji w sparksql prostu lubię:kwerenda aktualizująca w Spark SQL

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

mam błąd:

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

Jeśli sparksql nie obsługuje kwerendy aktualizacji lub Czy mam zły kod?

+0

Może być możliwy numer wersji –

+0

Używam iskry-1.6.1. –

Odpowiedz

10

Spark SQL nie obsługuje jeszcze instrukcji UPDATE.

Hive rozpoczął obsługę UPDATE od wersji hive 0.14. Ale nawet z Hive, obsługuje aktualizacje/usuwa tylko te tabele, które obsługują transakcji, jest wspomniany w hive documentation.

Zobacz odpowiedzi na forach z bazami danych, które potwierdzają, że UPDATES/DELETES are not supported in Spark SQL jako doesn't support transactions. Jeśli uważamy, wspieranie losowych aktualizacji jest bardzo skomplikowane w przypadku większości formatów danych w dużych danych. Wymaga skanowania dużych plików, aktualizowania określonych rekordów i przepisywania potencjalnie TB danych. To nie jest normalne SQL.

Powiązane problemy