【发布时间】:2016-04-13 09:10:50
【问题描述】:
我正在研究 Spark SQL 的成本函数。 在对 TABLE SCAN 行为进行建模时,我无法理解 READ 和 WRITE 是在管道中执行还是按顺序执行。
让我们考虑以下 SQL 查询:
SELECT * FROM table1 WHERE columnA = ‘xyz’;
每个任务:
- 读取数据块(本地或远程节点)
- 过滤掉不满足谓词的元组
- 将剩余的元组写入磁盘
(1)、(2)和(3)是按顺序执行还是流水线执行?换句话说,数据块首先被完全读取(构成它的所有磁盘页面),然后被过滤,然后被重写到磁盘,或者这些活动是在管道中进行的? (即在读取 (n+1)-tuple 时,可以处理和写入 n-tuple)。
提前致谢。
【问题讨论】:
标签: apache-spark apache-spark-sql