hive 动态分区及常用的函数

hive 动态分区 默认就是严格模式
动态分区数据导入

在严格模式下不指定partition

set hive.exec.dynamic.partition.mode= strict ;

insert into table dept_part3
select dname, loc, depno from dept_part;

非严格模式需要指定partition 不然会报错
set hive.exec.dynamic.partition.mode= nonstrict ;
insert into table dept_part3 partition(deptno) select dname , loc, deptno from dept_part;

collect_list 不去重
collect_set 去重

select collect-set(deptno) from emp;

在这里插入图片描述

结果: [20,30,10]

在这里插入图片描述

函数类型及特点 :

UDF: 输入一行输出一行 转化函数
UDAF: 输入多行输出一行 聚合函数
UDTF: 输入一行输出多行 炸裂函数

查看函数
show functions
查看函数详情
desc function year;

连接字符串不限制类型,udf函数
select concat(ename,‘-’ , job ,‘-’ , deptno) from emp;
连接字符串,字段类型必须是字符串, UDF函数

select concat_ws(‘-’,ename,job ,cast(deptno as string)) from emp;

在这里插入图片描述
原始数据是这样: 投币;点赞 ;转发 ;一键三联

在这里插入图片描述

用split 函数 这样数据就转换成了数组
select split(operator , “,”) from emp_operator;
因为有中括号 所以是数组
[“投币”,“点赞”,“转发”,''一键三联"]
在这里插入图片描述
select explode(split(operator, “,”) )from emp_operator ;

在这里插入图片描述
侧面试图的引入:
lateral view 包装成一个列
在这里插入图片描述
分解动作3: 创建侧面试图把name字段关联上去:

select name ,opitem from emp_operator
lateral view explode( split(operator, “,”) ) tmp as opitem ;

tmp 是 explode 这段的别名
opitem 是lateral view 这段,这列的别名
在这里插入图片描述
lateral 侧面的,横向的

late 勒特肉

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值