建立外部表
要注意分隔符,一定要注意
location 后面加的是位于hdfs里面的文件,就是不hdfs里面的文件放到hive数仓里面,hdfs里面的数据可以是听过架包运行的结果,也可以在本地运行后传到hdfs里面。
create external table user_action(user_id int,googs_id int,act_id int,cata_id int,time string,prov string)row format delimited fields terminated by '\t' location'/input';
建立普通表
create table user_action_sta(prov string,user_id int,viewCount int,addCount int,acllCount int,buyCount int)row format delimited fields terminated by '\t' ;
连接两个表(以上面两个为例子)说明以第一个表的act_id 点击一次为浏览,两次为收藏,三次为加入购物车,四次为购买,那么就要用sum()函数来做,如果act_id=1那么就加一,并且放到 user_action_sta 的第三个字段,后面道理也是一样的。group by 用两个字段作为主键,两个字段给一样
intert overwrite table user_action_staselect prov,user_id,sum(if(act_id=1,1,0)),sum(if(act_id=2,1,0)),sum(if(act_id=3,1,0)),sum(if(act_id=4,1,0));from user_action group by prov,user_id;
增量数据抽取新建分区表,根据订单日期进行分组(partitioned by(oderdata string))
create table oder_part(oderkey int,custkey int,totalprice double)partitioned by(oderdata string)row format delimited fields terminated by ',';
