Answer: I think that there is no real difference of architecture, but difference of "exposed layers". Drill must have shuffle in some way to support joins, Spark has "Tree aggregate" which can be called "Dremel style aggregation tree". Difference is that Spark has "exposed" execution engine with ...