当前位置: 首页>数据库>正文

hive 允许笛卡尔积的设置 hive笛卡尔积关联怎么优化

1 )笛卡尔集会在下面条件下产生

(1)省略连接条件

(2)连接条件无效

(3)所有表中的所有行互相连接

2 )案例实操

hive (default)> select empno, dname from emp, dept;

4 排序

4.1 全局排序( Order By )

Order By :全局排序,只有一个 Reducer

1 )使用 ORDER BY 子句排序

ASC ( ascend ) : 升序(默认)

DESC ( descend ) : 降序

2 ) ORDER BY 子句在 SELECT 语句的结尾

3 )案例实操

(1)查询员工信息按工资升序排列

hive (default)> select * from emp order by sal;

(2)查询员工信息按工资降序排列

hive (default)> select * from emp order by sal desc;

4.2 按照别名排序

按照员工薪水的 2 倍排序

hive (default)> select ename, sal*2 twosal from emp order by twosal;

4.3 多个列排序

按照部门和工资升序排序

hive (default)> select ename, deptno, sal from emp order by deptno, sal;

4.4 每个 Reduce 内部排序( Sort By )

Sort By :对于大规模的数据集 order by 的效率非常低。在很多情况下,并不需要全局排

序,此时可以使用 sort by 。

Sort by 为每个 reducer 产生一个排序文件。每个 Reducer 内部进行排序,对全局结果集

来说不是排序。

1 )设置 reduce 个数

hive (default)> set mapreduce.job.reduces=3;

2 )查看设置 reduce 个数

hive (default)> set mapreduce.job.reduces;

3 )根据部门编号降序查看员工信息

hive (default)> select * from emp sort by deptno desc;

4 )将查询结果导入到文件中(按照部门编号降序排序)

hive (default)> insert overwrite local directory

'/opt/module/data/sortby-result'

select * from emp sort by deptno desc;

4.5 分区( Distribute By )

Distribute By :

在有些情况下,我们需要控制某个特定行应该到哪个 reducer ,通常是为

了进行后续的聚集操作。 distribute by 子句可以做这件事。 distribute by 类似 MR 中 partition

(自定义分区),进行分区,结合 sort by 使用。

对于 distribute by 进行测试,一定要分配多 reduce 进行处理,否则无法看到 distribute

by 的效果。

1 )案例实操:

(1)先按照部门编号分区,再按照员工编号降序排序。

hive 允许笛卡尔积的设置 hive笛卡尔积关联怎么优化,hive 允许笛卡尔积的设置 hive笛卡尔积关联怎么优化_hadoop,第1张

注意:

➢ distribute by 的分区规则是根据分区字段的 hash 码与 reduce 的个数进行模除后,

余数相同的分到一个区。

➢ Hive 要求 DISTRIBUTE BY 语句要写在 SORT BY 语句之前。

4.6 Cluster By

当 distribute by 和 sorts by 字段相同时,可以使用 cluster by 方式。

cluster by 除了具有 distribute by 的功能外还兼具 sort by 的功能。但是排序 只能是升序

排序, 不能指定排序规则为 ASC 或者 DESC 。

(1)以下两种写法等价

hive (default)> select * from emp cluster by deptno;

hive (default)> select * from emp distribute by deptno sort by deptno;

注意: 按照部门编号分区,不一定就是固定死的数值,可以是 20 号和 30 号部门分到一

个分区里面去。



https://www.xamrdz.com/database/6k91964139.html

相关文章: