Hive 导入、导出数据

<------ 导入 ------>

  • 从本地目录文件导入Hive表

    语法:LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename [PARTITION (partcol1=val1, partcol2=val2 ...)]

        LOCAL : 区分是从本地,还是HDFS 导入

        OVERWRITE : 表示重写;不加,表示追加写入

        PARTITION(par1='val1') : 指定分区        

    步骤:

      1. 新建一张Hive表,列分隔符指定是 ” “

      

use default;
drop table if exists kimbo_test;
create table kimbo_test
(
id   int comment '主键ID',
name string comment '名称'
)ROW FORMAT DELIMITED FIELDS TERMINATED BY '	' LINES TERMINATED BY '
'
STORED AS TEXTFILE ;
View Code

      2. 创建文件,并写入内容,列分隔用 ” “

        vi kimbo_test.txt

      3. 导入数据

        Hive 模式: load data local inpath '/home/zhangshaosheng/kimbo_test.txt' overwrite into table default.kimbo_test;

        命令行模式: hive -S -e "load data local inpath '/home/zhangshaosheng/kimbo_test.txt' overwrite into table default.kimbo_test;"

  • 从已有的表导入数据

    

-- 创建临时表,只有表结构
use default;
drop table if exists kimbo_test2 ;
create table kimbo_test2 as select * from default.kimbo_test where 1=0;

-- 创建临时表,插入数据
use default;
drop table if exists kimbo_test3 ;
create table kimbo_test3 as select * from default.kimbo_test;
View Code
  • 插入单条数据

    Hive 模式: insert into table kimbo_test values (40,'南京');

<------ 导出 ------>

 

  • 从Hive查询表数据,导出到本地目录文件,跟HDFS的目录结构一致

    Hive 模式: insert overwrite local directory '/home/zhangshaosheng/test3' select * from default.kimbo_test;

  • 从Hive查询表数据,直接导出到文件中(本人常用)

    命令行模式: hive -S -e "select * from default.kimbo_test; " >kimbo_test7.txt

 

 

原文地址:https://www.cnblogs.com/kimbo/p/7065836.html