spark sql读取hive底层_scala – 从一个hive表中读取并使用spark sql写回来
我正在使用Spark SQL讀取Hive表并將其分配給
scala val
val x = sqlContext.sql("select * from some_table")
然后我正在使用數(shù)據(jù)幀x進行一些處理,最后得到一個數(shù)據(jù)幀y,它具有與表some_table一樣的精確模式.
最后,我試圖將y數(shù)據(jù)幀覆蓋到同一個hive表some_table
y.write.mode(SaveMode.Overwrite).saveAsTable().insertInto("some_table")
然后我收到錯誤
org.apache.spark.sql.AnalysisException: Cannot insert overwrite into table that is also being read from
我嘗試創(chuàng)建一個insert sql語句并使用sqlContext.sql()觸發(fā)它,但它也給了我同樣的錯誤.
有什么辦法可以繞過這個錯誤嗎?我需要將記錄插回到同一個表中.
嗨,我嘗試按照建議做,但仍然得到相同的錯誤.
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.;
總結(jié)
以上是生活随笔為你收集整理的spark sql读取hive底层_scala – 从一个hive表中读取并使用spark sql写回来的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 红魔6系列什么时候上市发布 搭载四项最快
- 下一篇: 蚂蚁借呗无信用额度怎么办