0


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

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

一、外部表操作

在创建表的时候可以指定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**;**


本文转载自: https://blog.csdn.net/nuhao/article/details/136230449
版权归原作者 nuhao_ 所有, 如有侵权,请联系我们删除。

“hive--外部表常用操作 全面且详细”的评论:

还没有评论