一. 数据导入

1. 语法

load data [local] inpath 'path' [overwrite] into table table_name [partition (partcol1=val1,…)];

1). load data:表示加载数据

2). local:表示从本地加载数据到hive表;否则从HDFS加载数据到hive表

3). inpath:表示加载数据的路径

4). overwrite:表示覆盖表中已有数据,否则表示追加

5). into table:表示加载到哪张表

6). partition:表示上传到指定分区

2. 实操

1). 加载本地文件到hive

-- 创建一张表
create table student(id string, name string) row format delimited fields terminated by '\t';-- 加载本地文件
load data local inpath '/opt/module/datas/student.txt' into table default.student;

2). 加载HDFS文件到hive中

#上传文件dfs -put /opt/module/datas/student.txt  /user/nty/hive;

-- 加载HDFS上数据
load data inpath '/user/nty/hive/student.txt' into table default.student;

3). 加载数据覆盖表中已有的数据

#上传文件
dfs -put /opt/module/datas/student.txt /user/nty/hive;

-- 加载数据覆盖表中已有的数据
load data inpath '/user/nty/hive/student.txt' overwrite into table default.student;

3. 通过查询语句向表中插入数据(Insert)

1). 创建一张分区表

create table student(id int, name string) partitioned by (month string) row format delimited fields terminated by '\t';

2). 基本插入数据

insert into table  student partition(month='201709') values(1,'wangwu'),(2,’zhaoliu’);

3). 基本模式插入(根据单张表查询结果)

insert overwrite table student partition(month='201708')
select id, name from student where month='201709';

insert into:以追加数据的方式插入到表或分区,原有数据不会删除

insert overwrite:会覆盖表或分区中已存在的数据

4).多表(多分区)插入模式(根据多张表查询结果)

from student
insert overwrite table student partition(month='201707')
select id, name where month='201709'
insert overwrite table student partition(month='201706')
select id, name where month='201709';

4. 查询语句中创建表并加载数据(As Select)

-- 根据查询结果创建表(查询的结果会添加到新创建的表中)
create table if not exists student3
as select id, name from student;

5. 创建表时通过Location指定加载数据路径

1). 上传数据到hdfs上

 dfs -mkdir /student;dfs -put /opt/module/datas/student.txt /student;

2). 创建表,并指定在hdfs上的位置

create external table if not exists student5(id int, name string
)
row format delimited fields terminated by '\t'
location '/student;

6.Import数据到指定表中

import table student2 partition(month='201709') from
'/user/hive/warehouse/export/student';

注意:先用export导出后,再将数据导入。

二. 数据导出

1.Insert 导出

-- 将查询的结果导出到本地
insert overwrite local directory '/opt/module/datas/export/student'
select * from student;-- 将查询的结果格式化导出到本地
insert overwrite local directory '/opt/module/datas/export/student1'
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
select * from student;-- 将查询的结果导出到HDFS上(没有local)
insert overwrite directory '/user/nty/student2'
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
select * from student;

2. Hadoop命令导出到本地

dfs -get /user/hive/warehouse/student/month=201709/000000_0 /opt/module/datas/export/student3.txt;

3. Hive Shell 命令导出

bin/hive -e 'select * from default.student;' > /opt/module/datas/export/student4.txt;

4. Export导出到HDFS上

export table default.student to '/user/hive/warehouse/export/student';

三. 清除数据(Truncate)

truncate table student;

Truncate只能删除管理表,不能删除外部表中数据

转载于:https://www.cnblogs.com/duoduotouhenying/p/10139290.html

Hive(6)-DML数据操作相关推荐

  1. HIVE之 DDL 数据定义 DML数据操作

    DDL数据库定义 创建数据库 1)创建一个数据库,数据库在 HDFS 上的默认存储路径是/user/hive/warehouse/*.db.hive (default)> create data ...

  2. Hive:命令行界面、数据类型、DDL数据定义(数据库及表操作/分区分桶)、DML数据操作(数据导入导出)

    目录 1.Hive命令行界面 1.1.选项列表 1.2.变量和属性 1.2.1.Hive中变量和属性命名空间 1.2.2.用户自定义变量 1.2.3..hiverc文件 1.3.一次使用的命令 1.4 ...

  3. 2019-7-26 [MySQL] 安装与介绍 语句分类/语法 数据类型 DDL数据定义:创建/查看/删除/使用 DML数据操作:增删改 主键约束 自动增长列 非空约束 默认值 Navicat

    文章目录 0.知识回顾 1.数据库介绍 1.1 数据库概述 1.1.1 什么是数据库 1.1.2 什么是数据库管理系统 1.1.3 数据库与数据库管理系统的关系 1.2 数据库表 1.3 表数据 1. ...

  4. Hive之DDL数据操作

    Hive之DDL数据操作 目录 数据导入 数据导出 清除表中数据 1. 数据导入 1. 向表中装载数据(Load) 语法 hive> load data [local] inpath '/opt ...

  5. 数据库DML数据操作语言

    文章目录 DML 数据操作语言 1. 插入数据(INSERT) 1.1 语法: 1.2 插入默认值 注意事项: 1.3 全列插入 2. 修改数据(UPDATE) 2.1 语法 注意 2.2 修改指定记 ...

  6. 【数据库基础知识二】数据库DataBase(简称DB),数据库基本概念、DDL:数据定义语言,用来操作数据库对象、DML:数据操作语言,用来操作表中的数据

    14天阅读挑战赛 目录 数据库基本概念 数据库DataBase(简称DB) 数据库管理系统Database management system(简称DBMS) 如何操作DBMS? 连接数据库的方式: ...

  7. MySQL基础篇——第11章 DML(数据操作):增删改

    MySQL基础篇--第11章 DML(数据操作):增删改 1. 插入数据(增) INSERT INTO ... 使用 INSERT INTO 语句向表中插入数据(记录) 1.1 方式1:VALUES ...

  8. Hive加载数据操作

    Hive加载数据操作 一.load data 语法结构: load data [local] inpath 'filepath' [overwrite] into table table_name [ ...

  9. MySQL→数据库、启动连接数据库、SQL→DDL数据定义语言及数据类型、DML数据操作语言、DQL数据查询语言、数据库约束→主键、唯一、非空、默认、外键、SQL、三大范式及一多关系、视图、内外连接

    MySQL连接退出命令 mysql –uroot -proot mysql –h127.0.0.1 –uroot -proot mysql --host=localhost --user=root - ...

最新文章

  1. 如何开启PostGreSQL的远程访问端口?
  2. 2021年春季学期-信号与系统-第二次作业参考答案-第四小题
  3. Windows Mobile 开发工具和资源
  4. 构建根文件系统之启动第1个程序init
  5. 五矿期货携手神策数据,深耕数字化 5 大应用,加速金融科技创新增长
  6. 创意沙雕黑色蝙蝠侠/小丑动态404页面源码
  7. ICE专题:实战分布式的Hello Word 【原创】
  8. 【opencv】错误提示OpenCV Error: Assertion failed
  9. sqlmap详细使用教程
  10. 手把手教你学DSP:基于TMS320C55x
  11. SAS 9.4 无法正常卸载,手动彻底删除相关文件
  12. 开源ext2read代码走读之--“\\\\.\\PhysicalDrive0”意义?
  13. 【数据恢复案例】.[decrypt20@firemail.cc].eking新型变种勒索病毒
  14. linux虚拟摄像头 开源,(四) 虚拟摄像头vivi体验
  15. 迪赛智慧数——其他图表(平行坐标图):2001 VS 2020主要城市房价及涨幅
  16. JavaScript自动触发事件
  17. android listview 点击获取焦点,android – ListView项目焦点行为
  18. Couldn‘t checkout branch_name: Revision not found in project_name git 分支无法checkout,切换分支报错
  19. 【PC】完美解决 office2010 错误1920 未能启动服务 “Office Software Protection Platform”(osppsvc)
  20. 「每周译Go」Windows 系统的Gopher们久等了!!

热门文章

  1. 【OpenCV】OpenCV实战从入门到精通之 -- 指针访问、迭代器iterator、动态地址计算配合at元素
  2. 论文审稿意见太奇葩?NeurIPS 2021
  3. 带你自学Python系列(三):列表遍历(for循环)
  4. Kaggle—So Easy!百行代码实现排名Top 5%的图像分类比赛
  5. 快手通过标签添加的我_快手内容运营技巧:快手创作者如何蹭热点?快速上热门...
  6. oracle manager 配置,Oracle Net Manager 基本配置
  7. python 解三阶多项式系数_python – 评估多项式系数
  8. java socket 异步回调函数,分享nodejs异步编程基础之回调函数用法
  9. JS-面向对象-This的指向---简单的函数调用 / 作为对象的方法调用时 / 作为构造函数调用时
  10. Cookie、token、session的区别是什么?