建立外部表

    要注意分隔符,一定要注意
    location 后面加的是位于hdfs里面的文件,就是不hdfs里面的文件放到hive数仓里面,hdfs里面的数据可以是听过架包运行的结果,也可以在本地运行后传到hdfs里面。

    1. create external table user_action(
    2. user_id int,
    3. googs_id int,
    4. act_id int,
    5. cata_id int,
    6. time string,
    7. prov string)
    8. row format delimited fields terminated by '\t' location'/input';

    建立普通表

    1. create table user_action_sta(
    2. prov string,
    3. user_id int,
    4. viewCount int,
    5. addCount int,
    6. acllCount int,
    7. buyCount int)
    8. row format delimited fields terminated by '\t' ;

    连接两个表(以上面两个为例子)说明以第一个表的act_id 点击一次为浏览,两次为收藏,三次为加入购物车,四次为购买,那么就要用sum()函数来做,如果act_id=1那么就加一,并且放到 user_action_sta 的第三个字段,后面道理也是一样的。group by 用两个字段作为主键,两个字段给一样

    1. intert overwrite table user_action_sta
    2. select prov,
    3. user_id,
    4. sum(if(act_id=1,1,0)),
    5. sum(if(act_id=2,1,0)),
    6. sum(if(act_id=3,1,0)),
    7. sum(if(act_id=4,1,0));
    8. from user_action group by prov,user_id;

    增量数据抽取新建分区表,根据订单日期进行分组(partitioned by(oderdata string))

    1. create table oder_part(
    2. oderkey int,
    3. custkey int,
    4. totalprice double)
    5. partitioned by(oderdata string)
    6. row format delimited fields terminated by ',';