Я использую Spark 2.4 и использую режим %sql
для запросов к таблицам.
Если я использую оконную функцию для большого набора данных, то какая из ORDER BY
или SORT BY
будет быть более эффективным с точки зрения запроса производительности ?
Я понимаю, что ORDER BY
обеспечивает глобальное упорядочение, но вычисление переносится только на редуктор 1
. Однако 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
Кто-нибудь может помочь. Спасибо.