导入数据的方法:
1从本地系统导入数据
1.1load data local inpath ‘/bigdata/1.txt’ overwrite into table extaljsk;
此处使用的是LOCAL,表示从本地文件系统中加载数据到Hive中,同时没有OVERWRITE关键字,仅仅会把新增的文件增加到目标文件夹而不会删除之前的数据。如果使用OVERWRITE关键字,那么目标文件夹中之前的数据将会被先删除掉。
1.2从HDFS导入数据:
load data inpath ‘/user/1.txt’ overwrite into table extaljsk;
HDFS的操作: hadoop fs -put ……
此处没有LOCAL关键字,表示分布式文件系统中的路径,这就是和第一种方法的主要区别,同时由日志可以发现,因为此处加了OVERWRITE关键字,执行了Deleted操作,即先删除之前存储的数据,然后再执行加载操作。
同时,INPATH子句中使用的文件路径还有一个限制,那就是这个路径下不可以包含任何文件夹
Overwrite覆盖的原理,是先删除数据,然后在写入数据
- 从其他的hive表中导入数据
Insert into table datadefinition_4_2_2 partition(dt=’2016030102’)
select id,name from datadefinition_4_2_1;
From datadefinition_4_2_1
Insert into table datadefinition_4_2_2
partition(dt=’2016030102’)
Select id,name where id=’1’