如果我試圖緩存一個巨大的DataFrame
(例如:100GB表),並且當我對緩存的DataFrame
執行查詢時,它會執行全表掃描嗎?火花將如何索引數據。星火文件說:緩存查詢性能Spark
星火SQL可以通過 使用緩存在內存中柱狀格式表調用spark.catalog.cacheTable(「表名」)或dataFrame.cache()。 然後,Spark SQL將只掃描所需的列,並自動調整壓縮以最大限度地減少內存使用量和GC壓力。您可以通過調用spark.catalog.uncacheTable(「tableName」) 從 內存中刪除該表。
http://spark.apache.org/docs/latest/sql-programming-guide.html#caching-data-in-memory
我沒有完全理解上述說法,這將是非常有益的,如果有人詳細地介紹了以下聲明或解釋它是如何在大數據幀緩存優化查詢
「然後Spark SQL將只掃描所需列,並將自動調整
調整壓縮「
你能提供.explain()方法的查詢計劃嗎? – addmeaning