作者回复: 正解,满分💯
作者回复: 是的~ 这里typo了,感谢老弟提醒~
作者回复: 辛苦老弟~ 太棒了!
作者回复: 这两条语句的效果是一样的,在spark sql里面的优化过程,在效果方面,完全一样。像你说的,也会做map端聚合,这些优化机制,都是有的~
作者回复: 👍👍👍
作者回复: 没错,createOrReplaceTempView更实用,避免重复建表带来的报错~
作者回复: 说到Shuffle,我们往往需要分类讨论。 重分区算子repartition、ByKey算子确实会引入Shuffle,这个是确定性的。 不确定的是join,一般来说,join都会引入Shuffle。不过有一种特殊的join,学名叫Collocated Join,这种join是不会引入Shuffle的。 名字听上去挺唬人,但本质上,就是参与join的两张表,提前按照join keys,做好了分区。因而在join的时候,自然就不会有Shuffle了。不过实际应用中,Collocated Join场景并不多,因此暂时可以忽略掉~