
# 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;
```
