1.在列表名中使用正则表达式
eg.在员工中选择一n开头的列
select n.*
from employee;
...
符号在esc键下
2.如果想要使用不同的列名,那么可以使用别名
eg. select name as na from employee
(name是employee表中的列,na是name的别名)
3.嵌套使用select
eg.select id from (select id,name from employee) a ;
select * from emp where id in (select id from employee);
4.order by:以倒叙或顺序来排列数据
order by命令总是仅仅使用一个reducer去排序
如果hive仅仅使用一个reducer,那么sort by 和order by作用一样。
5.如果排序通过多个reducers,那么它将无法完整排序
因为sort by 排序是在reducer里面排序,因此如果使用一个reducer,它将对数据进行完全排序,如果使用多个reducer,则将不会对数据进行完全排列。
select * from order_tab sort by order_no;
set mapreduce.job.reduces=2;
distribute by语句用于将数据分发给reducer并且将在reducer里用sort by进行排序(一般是用2个reducer,因为是奇偶分区)
select * from order_tab distribute by order_no;
select * from order_tab distribute by sort by order_no;
cluster by = distribute by sort by
select * from order_tab cluster by order_no;
2021-04-29
最新推荐文章于 2024-10-08 13:49:36 发布