apache-spark - Spark 在内存中缓存时对 parquet 分区的遗忘(本机 spark 缓存)
问题描述
我正在使用 Spark 进行一些批处理,从大约 2TB 的分区拼花文件中读取数据。现在,我正在将整个文件缓存在内存中,因为我需要多次限制对同一个镶木地板文件的读取(鉴于方式,我们正在分析数据)。
直到一段时间前,代码工作正常。最近,我们添加了需要在一些选择性分区上工作的用例(例如过去 2 年的指标平均值,其中完整数据产生于 6 年以上)。
当我们开始获取执行时间的指标时,我们观察到,将在分区数据子集上工作的用例与需要处理的用例所花费的时间相比,也花费了相似的时间完整的数据。
所以,我的问题是,Spark 的内存缓存是否支持 Parquet 文件的分区,即即使在内存中缓存数据之后,spark 也会保留分区信息?
注意:由于这确实是关于 Spark 处理方式的一般性问题,因此我没有添加任何指标或代码。
解决方案
推荐阅读
- asp.net-core - 自定义响应标头未出现在 API 响应中
- javascript - 如何将数组转换为对象
- sql - Postgres 视图中的重复列名合并
- flutter - 文档与集合
- c# - 在打开 PDF 中使用变量名时出现问题(使用 Spire.Pdf)
- microsoft-graph-api - 使用 MS Graph API 向邮件添加警告消息
- c# - 解析器错误消息:无法加载类型“MyApplication.Default”
- python - 用于获取 redfin 估计值的 Redfin 刮板
- r - 如何使用ggplot将两个不同比例的y轴放在绘图的同一侧?
- python - 哪种方法更快?