常用hive语句

查看表结构,可以查看存储文件格式

desc formatted table_name 


分区表增加表字段

alter table dwd_dj_ese_iot_case_di add columns(

is_failed                      bigint              comment'是否失败' ) cascade; 

分区表修改表字段(字段名、字段类型、字段备注)

ALTER TABLE 数据库名.表名

CHANGE COLUMN 字段名 新的字段名(如果不变就保持原字段) 字段类型(若不变就采用原来的字段) COMMENT '新的字段备注';


reduce调优

set mapreduce.reduce.memory.mb=4096;

set mapreduce.reduce.java.opts=-Xmx3683m;

set mapred.reduce.tasks = 100;

set hive.map.aggr=true;


map调优

set hive.map.aggr=true;

set mapred.max.split.size=256000000;          -- 决定每个map处理的最大的文件大小,单位为B

set mapred.min.split.size.per.node=1;        -- 节点中可以处理的最小的文件大小,102400000

set mapred.min.split.size.per.rack=1;        -- 机架中可以处理的最小的文件大小


map join

select 

/*+ mapjoin(a6,a7)*/


非严格模式

set hive.mapred.mode=nonstrict;


hive关键字冲突处理

先用 ` `,不行的话     SET hive.support.sql11.reserved.keywords=false;


hive 数组

array字段建表时格式 array

array_contains 判断array是否含有某个元素 :  array_contains(column,"a"),返回true/false


分组聚合,上钻下钻 

grouping_sets     在一个GROUP BY查询中,根据不同的维度组合进行聚合,等价于将不同维度的GROUP BY结果集进行UNION ALL

cube    根据GROUP BY的维度的所有组合进行聚合

rollup    是CUBE的子集,以最左侧的维度为主,从该维度进行层级聚合

http://lxw1234.com/archives/2015/04/193.htm

你可能感兴趣的:(常用hive语句)