入门客AI创业平台(我带你入门,你带我飞行)
博文笔记

Hive学习笔记 --- hive中导入数据文件的四种方式

创建时间:2016-09-27 投稿人: 浏览次数:2221

此处共有四种导入的形式:


1.通过外部表导入


用户在hive上建有external表,建表的同时指定hdfs路径,在数据拷贝到指定hdfs路径的同时,也同时完成数据插入external表。
例如:


编辑文件test.txt
$ cat test.txt 
1       hello
2       world
3       test
4       case
字段之间以" "分割


启动hive:
$ hive


建external表:
hive> CREATE EXTERNAL TABLE MYTEST(num INT, name STRING)
    > COMMENT "this is a test"
    > ROW FORMAT DELIMITED FIELDS TERMINATED BY " "
    > STORED AS TEXTFILE
    > LOCATION "/data/test";
OK
Time taken: 0.714 seconds


数据拷贝到hdfs:
$ hadoop fs -put test.txt /data/test



2.从本地导入

数据不在hdfs上,直接从本地导入hive表


文件/home/work/test.txt内容同上


建表:
hive> CREATE TABLE MYTEST2(num INT, name STRING)
    > COMMENT "this is a test2"                          
    > ROW FORMAT DELIMITED FIELDS TERMINATED BY " "     
    > STORED AS TEXTFILE;                                
OK
Time taken: 0.077 seconds


导数据入表:
hive> LOAD DATA LOCAL INPATH "/home/work/test.txt" INTO TABLE MYTEST2;


注:此处默认是追加,如果想覆盖,先清空表在导入数据的话,需要加上overwrite 


hive> LOAD DATA LOCAL INPATH "/home/work/test.txt" OVERWRITE INTO TABLE MYTEST2;



3.从hdfs导入

上述test.txt文件已经导入/data/test

则可以使用下述命令直接将数据导入hive表:

hive> CREATE TABLE MYTEST3(num INT, name STRING)
    > COMMENT "this is a test3"
    > ROW FORMAT DELIMITED FIELDS TERMINATED BY " "
    > STORED AS TEXTFILE;

hive> LOAD DATA INPATH "/data/test/test.txt" INTO TABLE MYTEST3;
Loading data to table default.mytest3



4. 从其它表导入数据:


hive> CREATE EXTERNAL TABLE MYTEST4(num INT) ;


hive> FROM MYTEST3 test3
    > INSERT OVERWRITE TABLE MYTEST4
    > select test3.num where name="world";


声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。