【发布时间】:2016-06-03 09:07:44
【问题描述】:
在学习spark SQL的时候,心里有个问题:
如前所述,SQL 执行结果是 SchemaRDD,但幕后发生了什么?优化后的执行计划有多少个转换或动作,应该相当于调用了普通的RDD手写代码?
如果我们手动编写代码而不是 SQL,它可能会生成一些中间 RDD,例如对源 RDD 执行一系列 map()、filter() 操作。但是 SQL 版本不会生成中间 RDD,对吗?
根据 SQL 内容,生成的 VM 字节码还涉及分区、洗牌,对吗?但是如果没有中间 RDD,如何在工作机器上触发调度并执行它们?
其实我还是搞不懂spark SQL和spark core的关系。它们是如何相互作用的?
【问题讨论】:
标签: apache-spark apache-spark-sql