内外部表操作,hive数据导出和导入的操作梳理

create database review01;
use review01;
-- 一.内外部表的操作
--1.内部表操作
--创建的三种方式:
create table stu(id int,name string);
insert into stu values (1,'张三');
create table stu1 like stu;
create table stu2 as select * from stu;
--删除内部表
drop table stu2;
--查看内部表结构
desc formatted stu;
--清空表数据
truncate table  stu1;
--2.外部表的操作,注意:外部表不能用as创建和truncate删除,因为对数据没有绝对控制权限
--创建的两种方式
create EXTERNAL table pp(id int,name string);
create EXTERNAL table pp1 like pp;
--删除外部表
drop table pp1;
--查看外部表结构
desc formatted pp;
--二.查看表和修改表
--1.查看表
show databases;--查看所有表
show create table pp;--查看建表语句
desc pp;--查看表信息
desc formatted pp;--查看表结构
--2.修改表
alter table pp rename to ps;--修改表名
alter table ps set location 'hdfs中存储路径';--修改表的存储路径.如果路径不存在,会在插入数据的时候创建
alter table ps set tblproperties ('c'='v');--修改表的属性
alter table ps set tblproperties ('EXTERNAL'='FALSE');--外部表改为内部表
alter table stu1 set tblproperties ('EXTERNAL'='TRUE'); --内部表改为外部表
alter table ps add columns (pid int);--增加字段
alter  table stu replace columns (id int,name varchar(100));--替换字段
alter table ps change  pid product string;--更改字段名
--三.默认分隔符和指定分隔符并快速映射表
--默认分隔符一般是/0001,□,SOH
create table tz(
    dt string,id string,name string,url string
) row format delimited fields terminated by '\t';--指定分隔符
load data inpath '/search_log.txt' into table tz;--快速加载表,本质是移动,原文件会消失
select * from tz limit 5;--验证表
-- 四.Hive数据的导入和导出
--导入/加载
load data local inpath '/search_log.txt' into table tz1;--从linux导入到hive表中,原文件保留
load data inpath '/user/hive/warehouse/review01.db/tz2'
    overwrite into table tz3;--从hdfs一个表导入到另一个表,原数据会消失,同时覆盖新表中数据
insert into table tz select * from tz1;--从其他表中加载数据
insert overwrite table tz3 select * from tz1;--从其他表中覆盖加载数据
--导出
insert overwrite local directory '/home' select * from tz;--从hive导出到linux,默认分隔符,保证目录是空的
insert overwrite local directory '/home'
row format delimited fields terminated by '-' select * from tz;--指定分隔符
insert overwrite directory '/output'
    row format delimited fields terminated by '/' select * from tz;--从hive导出到hdfs
--bin/hive -e "select * from myhive.test_load;" > /home/hadoop/export3/export4.txt--在linux输入导出hive数据
--bin/hive -f export.sql > /home/hadoop/export4/export4.txt  --脚本输出

猜你喜欢

转载自blog.csdn.net/MSJ3917/article/details/134353493