Hive数据操纵语言-DML(Load、insert、事务表)

1. Load加载数据

1.1 概述

  • 主要为将数据文件移动到Hive表对应的位置,即复制、移动操作

1.2 语法

在这里插入图片描述

1.2.1 filepath

  • 表示待移动数据的路径
  • 文件路径支持下面三种形式,要结合LOCAL关键字一起考虑:
    • 相对路径,例如:project/data1
    • 绝对路径,例如:/user/hive/project/data1
    • 具有schema的完整的URI,例如:hdfs://namenode:9000/user/hive/project/data1

1.2.2 LOCAL

  • 指定LOCAL,将在本地文件系统中查找文件路径。
  • 没有指定LOCAL关键字
    • 如果filepath指向的是一个完整的URI,会直接使用这个URI;
    • 如果没有指定schema,Hive会使用在hadoop配置文件中参数fs.default.name指定的。

1.2.3 OVERWRITE

  • 如果使用了OVERWRITE关键字,则目标表(或者分区)中的已经存在的数据会被删除,然后再将filepath指向的文件/目录中的内容添加到表/分区中。

1.3 练习

建表:

-- 1.1: 建表,从本地加载数据
create table student_local(
    num int,
    name string,
    sex string,
    age int,
    dept string
) row format delimited fields terminated by ',';

-- 1.2: 建表,从HDFS加载数据
create external table student_HDFS(
    num int,
    name string,
    sex string,
    age int,
    dept string
) row format delimited fields terminated by ',';

-- 1.3 建表,从HDFS加载数据到分区表
create table student_HDFS_p (
    num int,
    name string,
    sex string,
    age int,
    dept string
) partitioned by (country string) 
row format delimited fields terminated by  ',';

1.3.1 练习Load Data From Local FS

-- 2. 本地加载数据
load data local inpath '/root/hivedata/students.txt' into table student_local;

在这里插入图片描述

1.3.2 练习Load Data From HDFS

-- 3. 从HDFS加载数据
-- 先将数据上传至HDFS上,hadoop fs -put /root/hivedata/students.txt
load data inpath '/students.txt' into table student_hdfs;

在这里插入图片描述

1.3.3 练习Load Data To Partitoin Table

-- 4. 从HDFS加载数据并制定分区
-- 先将数据上传至HDFS上,hadoop fs -put /root/hivedata/students.txt
load data inpath !
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值