Hive学习笔记 --- hive中导入数据文件的四种方式
此处共有四种导入的形式:
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";
- 上一篇: JAVA中的 try( ){ } ==== 》 try-with-resources 资源自动释放
- 下一篇:没有了