Hive 导入导出 中间表 加载

-- load语句,将处理好的文件加载放入数据库,用于处理文件与表之间的数据迁移【类似建表之后再hdfs上放入文件】
-- insert,将处理好的数据放入数据库,用于处理表与表之间的数据迁移
--      使用insert和create的区别是,create...as不需要目的表,而insert必须有一个目的表
-- export,将数据库的文件打包导出在hdfs集群
-- import,可将export导出的文件读取为数据表
-- 建表使用student的student表
use test;
-- 填充hive/student文件夹的student.txt文件
create table student(
    id int,
    name string
)
row format delimited fields terminated by '\t'
location '/hive/student';
--  查询
select * from student;

/*
 load语法:
 LOAD DATA [LOCAL 路径] INPATH 'filepath' [OVERWRITE 覆盖] INTO TABLE tablename [PARTITION 分区(partcol1=val1, partcol2=val2 ...)];
 */

 -- 加载本地文件[本机指的是装载hadoop的虚拟机]到test数据库
load data local inpath "/opt/module/data/student.txt" into table student;
-- 加载hadoop-hdfs文件到test-student数据库 默认使用hdfs存储
load data inpath "/hive/hiveData/student_fake.txt" into table student;
select * from student;
-- 加载数据覆盖原有的数据表
create table student_copy as select * from student;
load data inpath "/hive/student_copy/student_fake.txt" overwrite into table student_copy;
select * from student_copy;

-- Insert语法:
/*
 insert 有两种形式,一种直接将数据写入表中,一种将别的表中数据写入表中(overwrite)
 */
-- 查询id大于1010的数据并将其写入student_copy数据表
-- insert和load都可以用来大批次处理数据的添加,但是使用load比较快速,insert可以使用条件
-- insert 是处理表与表之间的添加。而load是处理文件与文件(local,hdfs)的添加。
-- 也可以使用建中间表存储信息
-- 将查询结果加载student_copy
insert into table student_copy select * from student where id <1010;
-- insert [into|overwrite] table table_name;
select * from student_copy;
select * from student;
-- 在student中写入数据
insert into table  student values(1,'wangwu'),(2,'zhaoliu');
-- 将查询结果写入目标路径(local参数代表本地,不使用local默认存储在hdfs)
insert overwrite directory '/opt/module/datas/student'
    ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.JsonSerDe'
select id,name from student where id<1010;


-- 导入导出【export/import】
/*
 --导出【只能导出到hdfs】
EXPORT TABLE tablename TO 'export_target_path'

--导入
IMPORT [EXTERNAL] TABLE new_or_original_tablename FROM 'source_path' [LOCATION 'import_target_path']
 */
export table test.student to '/hive/hiveData/student';
import  table student_copy_3 from '/hive/hiveData/student'

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值