2016-05-30 15 views
5

mi chiedo posso usare la query di aggiornamento in sparksql proprio come:query di aggiornamento in Spark SQL

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

ho ottenuto l'errore:

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

Se lo sparksql non supporta la query di aggiornamento o Io uso il codice sbagliato?

+0

Possibile versione numero –

+0

Uso spark-1.6.1. –

risposta

10

Spark SQL non supporta ancora le dichiarazioni UPDATE.

Hive ha iniziato a supportare UPDATE dall'hive versione 0.14. Ma anche con Hive, supporta gli aggiornamenti/elimina solo su quelle tabelle che supportano le transazioni , è menzionata nello hive documentation.

Vedere le risposte nei forum di databricks che confermano che UPDATES/DELETES are not supported in Spark SQL come doesn't support transactions. Se pensiamo, il supporto degli aggiornamenti casuali è molto complesso con la maggior parte dei formati di archiviazione nei big data. Richiede la scansione di file enormi, l'aggiornamento di record specifici e la riscrittura di TB potenzialmente di dati. Non è normale SQL.