HIVE学习与实践(⼆):根据partition建表,插表,wherein语法,concat⽤法1. 脚本例⼦1
建表mytable,
partition 就是按 rcd_date 也就是 record date 时间来分区,
⽤’\t’ 作为row的分隔符。
create table if not able (
event string COMMENT'####' ,
info_id string COMMENT'#### ' ,
session_id string COMMENT'###'
) partitioned by (rcd_date string) row format delimited fields terminated by'\t';
2. 脚本例⼦2
应⽤场景如下,假如mydb⾥有⼀张记录了所有⽤户操作某个app的log:app_event_log ,
如何把触发了我们关⼼的断点的相关信息提取出来呢?
⾸先,表app_event_log是 按 年⽉⽇,也就是 y,m,d 做partition的, 利⽤concat函数连接起来,构成‘20161111’这样的格式。 其次,语法where in,后⾯跟字符串的array (‘123456’,’2345’,’123’),只要是属于该array的都会被select出来。
最后,把select出来的对应信息, insert 插表mytable,根据partition rcd_date。
set mapred.job.queue.name=queue_****;
insert overwrite able
partition (rcd_date='20161111')
select
event,info_id,session_id
mytable.app_event_log t1
where
info_id in ('123456','2345','123') and
concat(y,m,d)='${datestr}' ;
字符串连接函数:concat
语法: concat(string A, string B…)exists的用法
返回值: string
说明:返回输⼊字符串连接后的结果,⽀持任意个输⼊字符串
举例:
hive> select concat(‘abc’,'def’,'gh’) from lxw_dual;
abcdefgh
简明的教程:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论