[英]SPARK TempView Performance
我在SO 44011846上找到了這句話:
與傳統的臨時表不同,臨時視圖根本不會實現,甚至無法實現。 它對於訪問SQL中的數據很有用,但要理解,每次訪問時都必須對它的語句進行評估–
這是否意味着如果Hive是TempView的源,它將一直回到Hive?
我是這樣認為的,因此就性能而言,大量重復訪問是一個問題。
火花1.6
臨時表/視圖不存儲在內存中。 它們僅對從hive / rdbms訪問數據有用。
如果您使用的是Hive,
hiveContext.select("select * from tableA").registerTempTable("tableA")
上面的語句僅注冊臨時表。 這是轉型。 當執行任何操作時,它將在配置單元上執行sql並創建一個臨時表。 每當執行任何操作時,它將每次執行。
如果要在內存中緩存表,則必須使用以下語句-
hiveContext.cacheTable("tableA")
這是懶惰的評價。 每當執行任何操作時,它將執行sql並將temp表保存在內存中。 下次,對內存表執行操作。 不會每次都進行評估。
星火2.0
將registerTempTable替換為createOrReplaceTempView
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.