您的位置:首页 > 其它

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

2016-09-27 20:56 495 查看
此处共有四种导入的形式:

1.通过外部表导入

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

例如:

编辑文件test.txt

$ cat test.txt 

1       hello

2       world

3       test

4       case

字段之间以'\t'分割

启动hive:

$ hive

建external表:

hive> CREATE EXTERNAL TABLE MYTEST(num INT, name STRING)

    > COMMENT 'this is a test'

    > ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'

    > 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 '\t'     

    > STORED AS TEXTFILE;                                

OK

Time taken: 0.077 seconds

导数据入表:

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


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

hive> [b]LOAD DATA LOCAL INPATH '/home/work/test.txt' OVERWRITE INTO TABLE MYTEST2;
[/b]

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 '\t'

    > 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';
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: