DML:Data Manipulation Language(数据管理语言)
语法
LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename [PARTITION (partcol1=val1, partcol2=val2 ...)]从本地加载数据
LOAD DATA LOCAL INPATH '/home/hadoop/data/dept.txt' INTO TABLE ruoze_dept;使用overwrite加载数据 在加载数据的时候,如果没有加上overwite 关键字的话 会重复 加载
所以一般在工作中,加载数据的时候一定是要加上overwirte的
LOAD DATA LOCAL INPATH '/home/hadoop/data/dept.txt' OVERWRITE INTO TABLE ruoze_dept;从hdfs上加载数据 从hdfs上加载数据 只需要去掉 local 即可,其他一致的
LOAD DATA INPATH '/data/dept.txt' OVERWRITE INTO TABLE ruoze_dept;查看下hdfs上的文件
查看hive中数据
这里需要注意的是如果从hdfs上加载数据,执行第二次的时候,是会有错误的
错误日志提示文件不存在了,查看hdfs
果然没有了,这里细想一下可以理解的,因为hive的内部表的元数据信息和数据都是有hive自己管理的,所以我们从hdfs中加载完数据之后,会将hdfs上的目录移动到hive的数据仓库对应的数据库中
注意 不能插入数据顺序不能错,字段数要一致
执行导出语句
INSERT OVERWRITE LOCAL DIRECTORY '/home/hadoop/data/hive_test' ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' SELECT empno,ename FROM ruoze_emp;查看结果