更新时间: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;
父主题: 排序