【发布时间】:2020-06-22 02:44:04
【问题描述】:
我正在研究 Spark 优化方法,并遇到了各种实现优化的方法。但有两个名字引起了我的注意。
- 分区修剪
- 谓词下推
他们说:
分区修剪:
分区修剪是一种性能优化,限制数量 Spark 在查询时读取的文件和分区。后 对数据进行分区,匹配特定分区过滤器的查询 标准通过允许 Spark 只读取一个子集来提高性能 的目录和文件。
谓词下推:
Spark 将尝试将数据过滤移动到尽可能靠近源的位置 可以避免将不必要的数据加载到内存中。镶木地板和 ORC 文件在不同的块中维护有关每列的各种统计信息 aof 数据(例如最小值和最大值)。读取这些文件的程序 可以使用这些索引来确定是否某些块,甚至整个 文件,根本需要阅读。这允许程序潜在地 在处理过程中跳过大量数据。
通过阅读上述概念,它们似乎在做同样的事情,即应用满足查询中给出的谓词的读取语句(查询)。 分区修剪和谓词下推是不同的概念还是我看错了?
【问题讨论】:
-
谓词下推可能导致分区修剪。
-
这能回答你的问题吗? stackoverflow.com/questions/58140612/…
标签: apache-spark