Ben kovan tablodan okuma ve kıvılcım sql
val x = sqlContext.sql("select * from some_table")
val
Kıvılcım SQL kullanarak bir kovan tablo okuma ve bir skalasına atamadan am Sonra dataframe x ile bazı işlem yapıyorum kullanarak ona tekrar yazıp Son olarak, bir tabloyla kesin şemaya sahip olan bir veri çerçevesiyle geliyoruz. Nihayet ben hatayıorg.apache.spark.sql.AnalysisException alıyorum Sonra
y.write.mode(SaveMode.Overwrite).saveAsTable().insertInto("some_table")
some_table aynı kovan masaya y dataframe üzerine eklemek çalışıyorum: Can not (ayrıca ben bir ekleme sql deyimi oluşturma ve sqlContext.sql kullanarak ateş çalıştı
okunan ediliyor tabloya üzerine yerleştirin) ama o da bana aynı hatayı verdi.
Bu hatayı atlatmanın bir yolu var mı? Kayıtları aynı masaya tekrar eklemem gerek.
Merhaba Önerildiği gibi yapmaya çalıştım ama yine de aynı hatayı alıyordum.
val x = sqlContext.sql("select * from incremental.test2")
val y = x.limit(5)
y.registerTempTable("temp_table")
val dy = sqlContext.table("temp_table")
dy.write.mode("overwrite").insertInto("incremental.test2")
scala> dy.write.mode("overwrite").insertInto("incremental.test2")
org.apache.spark.sql.AnalysisException: Cannot insert overwrite into table that is also being read from.;
satırları üzerine yazabilirsiniz geçici tabloya
daki DataFrame
y
kurtarmak yine aynı hatayı aldım olmalıdır. Sorumu kod snippet'i – Aviile değiştirdim Üzgünüm, cevabımı düzenledim. registerAsTempTable bir bellek içi tablo oluşturarak, aynı hatayı verir. SaveAsTable ile çalışmalıdır (ancak diske yazılır, daha sonra tabloyu düşürmeniz gerekir). Maalesef, diğer alternatifleri göremiyorum – cheseaux
Ya, durumu aynı mantıkla ele aldım ama maliyetini düşük tutuyorum. Vurguladığınız, diske yazdığınız nokta, atlamayı çok isterim. Her neyse yardım @cheseaux için teşekkürler. Bu konuda iyi bir şey bulursan bana haber ver. Alkış !! – Avi