hive加载数据

1)加载到普通表

            --加载本地文本文件内容(要与hive表字段分隔符顺序都要一致)
            load data local inpath '/home/hadoop/orders.csv' overwrite into table orders;
            1> 如果数据源在HDFS上,则 load data inpath 'hdfs://master:9000/user/orders' overwrite into table orders;
 
2) 加载到分区表
            load data local inpath '/home/hadoop/test.txt' overwrite into table test partition (dt='2017-09-09');
            1> partition 是指定这批数据放入分区2017-09-09中;
 
3)加载分桶表
            --先创建普通临时表
            create table orders_tmp
            (
                user_id int,
                user_name string,
                create_time string
            )
            row format delimited fields terminated by ',' stored as textfile;
 
            --数据载入临时表
            load data local inpath '/home/hadoop/lead.txt' overwrite into table orders_tmp;
 
            --导入分桶表
            set hive.enforce.bucketing = true;
            insert overwrite table orders select * from orders_tmp;
 
4) 导出数据
            --导出数据,是将hive表中的数据导出到本地文件中;
            insert overwrite local directory '/home/hadoop/orders.bak2017-12-28' select * from orders;
            【去掉local关键字,也可以导出到HDFS上】
 
5)插入数据
            --insert select ; {}中的内容可选
            insert overwrite table order_tmp {partition (dt='2017-09-09')} select * from orders;
            --一次遍历多次插入
            from orders
            insert overwrite table log1 select company_id,original where company_id = '10086'
            insert overwrite table log1 select company_id,original where company_id = '10000'
            [每次hive查询,都会将数据集整个遍历一遍,当查询结果会插入过个表中时,可以采用以上语法,将一次遍历写入过个表,以达到提高效率的目的。]
 
6)复制表
            --复制表是将源表的结构和数据复制并创建为一个新表,复制过程中,可以对数据进行筛选,列可以进行删减
            create table order
            row format delimited fields terminated by ' ' stored as textfile
            as
            select leader_id,order_id,'2017-09-09' as bakdate from orders
            where create_time < '2017-09-09';
            [备份orders表中日期小于2017-09-09的内容到order中,选中了leader_id,order_id,添加了一个bakdate列]
 
7)克隆表
            --只克隆源表的所有元数据,但是不复制源表的数据
            create table orders like order;
 
        8)备份表
            --将orders_log数据备份到HDFS上命名为 /user/hive/action_log.export;备份是备份表的元数据和数据内容
            export table orders_log partition (dt='2017-09-09') to '/user/hive/action_log.export';
 
        9) 还原表
            import table orders_log from '/user/hive/action_log.export';
原文地址:https://www.cnblogs.com/dongtime/p/9963881.html