Order by为全局排序,当表数据量过大时,性能可能会出现瓶颈;Sort by为局部排序,确保Reduce任务内结果有序,全局排序不保证;Distribute by按照指定字段进行Hash分片,把数据划分到不同的Reducer中;CLUSTER BY:根据指定的字段进行分桶,并在桶内进行排序,可以认为cluster by是distribute by+sort by。对于排序而言,尝试用distribute by+sort by确保reduce中结果有序,最后在全局有序。[code]-- 原始脚本select *from user_pay_tablewhere dt = '20221015'order by amtlimit 500;-- 改进脚本SELECT *FROM user_pay_tableWHERE dt = '20221015'DISTRIBUTE BY ( CASE WHEN amt < 100 THEN 0 WHEN amt >= 100 AND age