更新时间:2026-07-03 GMT+08:00
分享

DISTRIBUTE BY

功能描述

DISTRIBUTE BY子句用于根据指定字段对数据进行分桶(重新分区),将相同键值的数据分配到同一个Reducer中。DISTRIBUTE BY不会在桶内进行排序。

语法格式

SELECT projectItem [, ...] FROM table_reference
  DISTRIBUTE BY expression [, ...]

参数说明

参数

说明

expression

分桶表达式。支持单字段及多字段。根据表达式的哈希值将数据分配到不同的Reducer中,相同键值的数据一定在同一个Reducer中。

注意事项

  • DISTRIBUTE BY仅负责分桶,不负责桶内排序。
  • 如需在分桶后排序,请配合SORT BY使用。DISTRIBUTE BY和SORT BY可以使用不同字段。
  • CLUSTER BY是DISTRIBUTE BY和SORT BY使用相同字段的简写。

示例

根据字段score进行分桶:

SELECT * FROM student DISTRIBUTE BY score; 

分桶后排序:

SELECT * FROM student DISTRIBUTE BY class_id SORT BY score DESC; 

多字段分桶:

SELECT * FROM student DISTRIBUTE BY class_id, name;

相关文档