1.课前经验:
在关系型数据库中,使用insert,update的情况是很多的,但是在大数据中,比如hive中,这种使用情况是很少的,基本上都用用load,把一个文件和一批文件load进hive表里,其实就是把这些文件load到hdfs中去。
2.LOAD:
LOAD DATA [LOCAL] INPATH ‘filepath’ [OVERWRITE] INTO TABLE tablename [PARTITION (partcol1=val1, partcol2=val2 …)]
LOCAL:表示的是本地,就是Linux上。如果不带LOCAL,相当于这个数据在hdfs上。
‘filepath’ : 表示指向你数据所在的一个路径。
OVERWRITE: 表示将之前的数据覆盖。
INTO TABLE:表示追加。
PARTITION :表示分区。
首先我们先创建一张表:
create table dept(
deptno int,
dname string,
location string
) row format delimited fields terminated by ‘\t’;
然后从本地LOAD数据到dept中:
LOAD DATA LOCAL INPATH ‘/home/hadoop/data/dept.txt’ OVERWRITE INTO TABLE dept;(覆盖)
LOAD DATA LOCAL INPATH ‘/home/hadoop/data/dept.txt’ INTO TABLE dept;(追加)
从上图就可以看出OVERWRITE和 INTO TABLE的区别。
下面我们试一下从hdfs上加载数据到表里:
首先现在hdfs上创建一个目录,将文件放到目录下:
然后加载数据到dept表里:
LOAD DATA INPATH ‘/hive/dept/dept.txt’ OVERWRITE INTO TABLE dept;(没有LOCAL,表示从hdfs加载数据)
这个时候到hdfs上看,发现文件没有了,
(它被移到dept这张表默认的hdfs的路径下了,这里是:hdfs://10-9-140-90:9000/user/hive/warehouse/d6_hive.db/dept&
[Hive DML学习]
最新推荐文章于 2022-08-08 00:45:53 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)