四、Hive导入及导出数据
   
- 
     
 通过HDFS直接导入导出
 
- 
     
 通过Hive命令导入导出
 
 
   
    
    
    4.1、Hive导入数据的语法
   
LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename [PARTITION (partcol1=val1, partcol2=val2 ...)]
LOCAL:导入语句带有LOCAL,说明是导入Linux本地的数据,若是从HDFS上导入数据,则导入语句不加LOCAL;
filepath:数据的路径
OVERWRITE:指定覆盖表之前的数据,如果是追加,则去掉OVERWRITE关键字即可。
PARTITON:如果是分区表,指定分区字段的名称。
    
     任务实现:导入数据到泰坦尼克乘客表中
    
   
    
    
    下面先把train.csv导入到hdfs的/user/root目录下,然后就可以直接把hdfs上的导入到数据库
    
     
   
    
    
    4.2、单表查询导入数据
   
INSERT [OVERWRITE|INTO] table 表1 
[PARTITION(part1=val1,part2=val2)] SELECT字段1, 字段2, 字段3  FROM  表2 ; 
OVERWRITE:覆盖         INTO:追加
PARTITION:分区表  填分区字段
    
    
    4.3、多表查询导入数据
   
FROM 表1 
INSERT INTO TABLE 表2 SELECT 字段 LIMIT N
INSERT INTO TABLE 表3 SELECT 字段 WHERE … ;
    
     任务实现:
    
    
    
     查询tidanic表中的存活乘客数据到tidanic_save
     
     查询tidanic表中的死亡乘客数据到tidanic_died
    
    
    
    
     
   
    
    
    4.4、导出到Linux本地
   
INSERT OVERWRITE [LOCAL] DIRECTORY '路径’ 
ROW FORMAT DELIMITED FIELDS TERMINATED BY ',’ 
SELECT 字段1, 字段2, 字段3 FROM 表名 ;
如果添加LOCAL关键字,那么导出的是本地目录,如果没有该关键字,那么导出的是HDFS目录;
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','在这里指定导出数据的分隔符为‘,’。
OVERWRITE LOCAL DIRECTORY 查询结果将覆盖本地目录
    
     任务实现:导出死亡名单到Linux本地
    
    
    
    
    查看
    
     
   
 
版权声明:本文为qq_46485161原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
