sparksql中的order by vs sort by

2g32fytz  于 2021-05-27  发布在  Spark
关注(0)|答案(2)|浏览(735)

我使用spark 2.4和 %sql 查询表的模式。
如果我在一个大数据集上使用窗口函数,那么 ORDER BYSORT BY 从查询性能的Angular 来看,会更有效吗?
我明白 ORDER BY 确保全局排序,但计算只被推到 1 减速器。然而, SORT BY 将在每个分区内排序,但分区可能接收重叠的范围。
我想知道如果 SORT BY 在这种情况下也可以使用?在处理大数据集(比如 100 M 行)?
例如。 ROW_NUMBER() OVER (PARTITION BY prsn_id ORDER BY purch_dt desc) AS RNROW_NUMBER() OVER (PARTITION BY prsn_id SORT BY purch_dt desc) AS RN 有人能帮忙吗。谢谢。

72qzrwbm

72qzrwbm1#

不管你是否使用 SORT BY 或者 ORDER BY . 有一个关于Hive的概念,你可能是指,但你使用的Spark,没有这样的问题。
为了 partition BY …只有在没有任何分区的情况下,1 reducer方面才是一个问题。你有身份证,所以没问题。

ao218c7q

ao218c7q2#

sort by 应用于每个bucket,并不保证对整个数据集进行排序。但是 order by 应用于整个数据集(在单个缩减器中)。因为您的查询是针对每个分区键进行分区和排序/排序的,所以这两种用法返回相同的输出。

相关问题