首页 > 解决方案 > Spark 在内存中缓存时对 parquet 分区的遗忘(本机 spark 缓存)

问题描述

我正在使用 Spark 进行一些批处理,从大约 2TB 的分区拼花文件中读取数据。现在,我正在将整个文件缓存在内存中,因为我需要多次限制对同一个镶木地板文件的读取(鉴于方式,我们正在分析数据)。

直到一段时间前,代码工作正常。最近,我们添加了需要在一些选择性分区上工作的用例(例如过去 2 年的指标平均值,其中完整数据产生于 6 年以上)。

当我们开始获取执行时间的指标时,我们观察到,将在分区数据子集上工作的用例与需要处理的用例所花费的时间相比,也花费了相似的时间完整的数据。

所以,我的问题是,Spark 的内存缓存是否支持 Parquet 文件的分区,即即使在内存中缓存数据之后,spark 也会保留分区信息?

注意:由于这确实是关于 Spark 处理方式的一般性问题,因此我没有添加任何指标或代码。

标签: apache-sparkcachingparquet

解决方案


推荐阅读