hive--外部表常用操作 全面且详细

文章中关于外部表常用操作目录

一、外部表操作

二、数据装载载命令Load

三、目标: 分别创建老师与学生表外部表,并向表中加载数据

     3.1 准备工作 

​​​​​​​      3.2 路径

   3.4实现

一、外部表操作

在创建表的时候可以指定external关键字创建外部表,外部表对应的文件存储在location指定的hdfs目录下,向该目录添加新文件的同时,该表也会读取到该文件(当然文件格式必须跟表定义的一致)。

外部表因为是指定其他的hdfs路径的数据加载到表当中来,所以hive表会认为自己不完全独占这份数据,所以删除hive外部表的时候,数据仍然存放在hdfs当中,不会删掉

​​​​​​​​​​​​​​二、数据装载载命令Load

Load命令用于将外部数据加载到Hive表中

语法:

load data [local] inpath '/export/data/hive_data/student.txt' [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:表示上传到指定分区

三、目标: 分别创建老师与学生表外部表,并向表中加载数据

     3.1 准备工作 

在linux的 /export/data/hive_data 目录下 创建两个文件, 内容如下

student.txt

01 赵雷 1990-01-01
02 钱电 1990-12-21
03 孙风 1990-05-20
04 李云 1990-08-06
05 周梅 1991-12-01 `
06 吴兰 1992-03-01
07 郑竹 1989-07-01
08 王菊 1990-01-20

teacher.txt

01 张三
02 李四
03 王五

注意: 列之间使用 退格键(Tab) 进行分割

​​​​​​​      3.2 路径

1 创建教师外部表

2 创建学生外部表

3 从本地文件系统向表中加载数据 且 演示追加效果

4 从本地文件系统向表中加载数据 且 演示覆盖效果

5 从hdfs系统向表加载数据

5.1 在hdfs系统中创建目录

5.2 将数据文件上传到 hdfs目录中

5.3 加载数据

   3.4实现

 创建老师表:

create external table teacher (t_id string,t_name string) 

row format delimited

fields terminated by '  ';

​​​​​​​创建学生表:

create external table student (s_id string,s_name string,s_birth string , s_sex string ) 

row format delimited

fields terminated by ' ';

​​​​​​​从本地文件系统向表中加载数据

load data local inpath '/export/data/hive_data/student.txt' into table student;

​​​​​​​加载数据并覆盖已有数据

load data local inpath '/export/data/hive_data/student.txt' overwrite  into table student;

​​​​​​​从hdfs文件系统向表中加载数据

需要提前将数据上传到hdfs文件系统,其实就是一个移动文件的操作

cd /export/data/hive_data

hdfs dfs -mkdir -p /hivedatas

hdfs dfs -put teacher.txt /hivedatas/

load data inpath '/hivedatas/teacher.txt' into table teacher;

  • 32
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值