如果我试图缓存一个巨大的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