Update Hive数据查询详解.md

This commit is contained in:
heibaiying 2020-03-04 16:14:14 +08:00 committed by GitHub
parent ac7e59ce87
commit 89ad4cc4ac
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -194,9 +194,7 @@ SELECT deptno,SUM(sal) FROM emp GROUP BY deptno HAVING SUM(sal)>9000;
### 2.9 DISTRIBUTE BY
默认情况下MapReduce 程序会对 Map 输出结果的 Key 值进行散列,并均匀分发到所有 Reducer 上。如果想要把具有相同 Key 值的数据分发到同一个 Reducer 进行处理,这就需要使用 DISTRIBUTE BY 字句。
需要注意的是DISTRIBUTE BY 虽然能保证具有相同 Key 值的数据分发到同一个 Reducer但是不能保证数据在 Reducer 上是有序的。情况如下:
如果想要把具有相同 Key 值的数据分发到同一个 Reducer 进行处理,这就需要使用 DISTRIBUTE BY 字句。需要注意的是DISTRIBUTE BY 虽然能保证具有相同 Key 值的数据分发到同一个 Reducer但是不能保证数据在 Reducer 上是有序的。情况如下:
把以下 5 个数据发送到两个 Reducer 上进行处理:
@ -224,7 +222,7 @@ k4
k3
```
如果想让 Reducer 上的数据有序的,可以结合 `SORT BY` 使用 (示例如下),或者使用下面我们将要介绍的 CLUSTER BY。
如果想让 Reducer 上的数据有序的,可以结合 `SORT BY` 使用 (示例如下),或者使用下面我们将要介绍的 CLUSTER BY。
```sql
-- 将数据按照部门分发到对应的 Reducer 上处理
@ -393,4 +391,4 @@ SET hive.exec.mode.local.auto=true;
1. [LanguageManual Select](https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Select)
2. [LanguageManual Joins](https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Joins)
3. [LanguageManual GroupBy](https://cwiki.apache.org/confluence/display/Hive/LanguageManual+GroupBy)
4. [LanguageManual SortBy](https://cwiki.apache.org/confluence/display/Hive/LanguageManual+SortBy)
4. [LanguageManual SortBy](https://cwiki.apache.org/confluence/display/Hive/LanguageManual+SortBy)