【发布时间】:2020-08-13 17:24:26
【问题描述】:
我使用Spark 2.4,使用%sql模式查询表。
如果我在大型数据集上使用 Window 函数,那么从查询性能的角度来看,ORDER BY 和 SORT BY 之间的哪一个会更有效?
我知道ORDER BY 确保全局排序,但计算只推送到1 reducer。但是,SORT BY 将在每个分区内进行排序,但分区可能会收到重叠的范围。
我想了解在这种情况下是否也可以使用SORT BY?在处理大型数据集(比如100 M 行)时,哪一个效率更高?
例如
ROW_NUMBER() OVER (PARTITION BY prsn_id ORDER BY purch_dt desc) AS RN
VS
ROW_NUMBER() OVER (PARTITION BY prsn_id SORT BY purch_dt desc) AS RN
谁能帮忙。谢谢。
【问题讨论】:
-
电线在这里交叉。
标签: apache-spark apache-spark-sql