Hive Load装载数据与HDFS的关系

装载数据:LOAD移动数据

LOCAL:指定文件位于本地文件系统 ;OVERWRITE表示覆盖现有数据
使用方法:

-- load数据格式
LOAD DATA LOCAL INPATH '/home/Downloads/employee.txt' 
OVERWRITE INTO TABLE employee;

-- 方式一:LOCAL表示文件位于本地,OVERWRITE表示覆盖现有数据
LOAD DATA LOCAL INPATH '/home/Downloads/employee.txt' 
OVERWRITE INTO TABLE employee_partitioned  PARTITION (year=2014, month=12);

-- 方式二:没有LOCAL,文件位于HDFS文件系统中
LOAD DATA INPATH '/tmp/employee.txt'  
OVERWRITE INTO TABLE employee_partitioned PARTITION (year=2017, month=12);

方式二比方式一快,因为文件已经在HDFS中了,只需改变NameNode上对data的位置映射即可。方式一牵扯到上传文件到DataNode。虽然这些数据都在table的文件夹之下可以找到,但其实在HDFS系统上,在存储位置上,所有的数据还是都存在data的文件夹下。

语句:

 hive> load data [local] inpath '数据的 path' [overwrite] into table student [partition (partcol1=val1,...)];

(1)load data:表示加载数据
(2)local:表示从本地加载数据到 hive 表;否则从 HDFS 加载数据到 hive 表 (3)inpath:表示加载数据的路径 (4)overwrite:表示覆盖表中已有数据,否则表示追加
(5)into table:表示加载到哪张表
(6)student:表示具体的表
(7)partition:表示上传到指定分区

猜你喜欢

转载自blog.csdn.net/CharlesCFA/article/details/113871606
今日推荐