1、数据导入

1)向表中装载数据(load)

语法
hive> load data [local] inpath '/opt/module/datas/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:表示上传到指定分区

实例操作

创建一张表

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

(1)加载本地文件到hive

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

(2)加载hdfs文件到hive

load data inpath '/user/hive/warehouse/stu.txt' into table student;

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

load data inpath '/user/hive/warehouse/stu.txt' overwrite into table student;

2)通过查询语句向表中插入数据(insert)

创建一张分区表

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

(1)基本插入

insert into table student partition(month='2019') values(1,"wang"),(2,"zhang");
insert  overwrite table stu partition(month='2019') select id,name from  student where month='2019';

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

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

insert 不支持插入部分字段

(2)多表(多分区)插入

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

3)查询语句中创建表并加载数据(as select)

create table if not exists stu
as
select id,name from student;

4)创建表时通过location指定加载数据路径

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

5)Import数据到指定hive表中

先用export导出后,再将数据导入

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

2、数据导出

1)insert导出

(1)将查询的结果导出到本地(各列数据紧挨着,没有分隔符)

insert overwrite local directory '/opt/export/student' select * from student;

(2)将查询的结果格式化导出到本地

insert overwrite local directory '/opt/export/student' row format delimited fileds terminated by '\t' select * from student;

(3)将查询结果导出到hdfs上(没有local)

insert overwrite local directory '/user/hive/warehouse/export/student' row format delimited fileds terminated by '\t' select * from student;

2)hadoop命令导出到本地

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

3)hive shell命令导出

hive -f/-e 执行语句或者脚本 > file

hive -e 'select * from student' > /opt/datas/student.txt;

4)export导出到hdfs上

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

export 和import主要用于两个hadoop平台集群之间hive表迁移

hive DML操作的更多相关文章

  1. hive DML 操作

    数据导入 向表中装载数据(Load) 1.语法 load data [local] inpath '数据的 path' [overwrite] into table student [partitio ...

  2. Hive DDL、DML操作

    • 一.DDL操作(数据定义语言)包括:Create.Alter.Show.Drop等. • create database- 创建新数据库 • alter database - 修改数据库 • dr ...

  3. 入门大数据---Hive常用DML操作

    Hive 常用DML操作 一.加载文件数据到表 1.1 语法 LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename ...

  4. 23-hadoop-hive的DDL和DML操作

    跟mysql类似, hive也有 DDL, 和 DML操作 数据类型: https://cwiki.apache.org/confluence/display/Hive/LanguageManual+ ...

  5. Hive数据库操作

    Hive数据结构 除了基本数据类型(与java类似),hive支持三种集合类型 Hive集合类型数据 array.map.structs hive (default)> create table ...

  6. Vertica并发DML操作性能瓶颈的产生与优化(转)

    文章来源:中国联通网研院网优网管部IT技术研究团队 作者:陆昕 1. 引言 众所周知,MPP数据库以其分布式的超大存储能力以及列式的高速汇总能力,已经成为大数据分析比不可少的工具.Vertica就是这 ...

  7. salesforce 零基础开发入门学习(三)sObject简单介绍以及简单DML操作(SOQL)

    salesforce中对于数据库操作和JAVA等语言对于数据库操作是有一定区别的.salesforce中的数据库使用的是Force.com 平台的数据库,数据表一行数据可以理解成一个sObject变量 ...

  8. Sql Server之旅——第十站 看看DML操作对索引的影响

    我们都知道建索引是需要谨慎的,当只有利大于弊的时候才适合建,我们也知道建索引是需要维护成本的,这个维护也就在于DML操作了, 下面我们具体看看到底DML对索引都有哪些内幕.... 一:delete操作 ...

  9. spark使用Hive表操作

    spark Hive表操作 之前很长一段时间是通过hiveServer操作Hive表的,一旦hiveServer宕掉就无法进行操作. 比如说一个修改表分区的操作 一.使用HiveServer的方式 v ...

随机推荐

  1. MySQL 5.7

    博客地址:https://www.cnblogs.com/runningStudy/p/6444047.html mysql官网下载地址:https://downloads.mysql.com/arc ...

  2. Spring配置文件出错

    问题描述: Element 'xxxxxxx' cannot have character [children],because the type's content type is element- ...

  3. ES的聚合操作

    构建数据: ​    @Test    public void createIndex(){        /**         * 创建索引         * */        client. ...

  4. inux 下zip包的压缩与解压

    linux zip 命令详解 功能说明:压缩文件. 语 法:zip [-AcdDfFghjJKlLmoqrSTuvVwXyz$][-b <工作目录>][-ll][-n <字尾字符串& ...

  5. 在命令行运行java代码

    因为尝试将运行结果通过管道命令保存,所以尝试在命令行(不借助lde来运行java代码,结果折腾了半天) 仿照的是eclipse创建文件目录的方式 最终解决方法是: #/bin/bash root_di ...

  6. Maps.newHashMap 和 new HashMap的区别

    区别: (1)Map<String, Object> result = new HashMap<String,Object>(); 这种是java原生API写法,需要你手动加泛 ...

  7. Fabric基础架构原理(一)

    Linux基金会于2015年12月启动了名为“超级账本”(Hyperledger)的开源项目,旨在推动各方协作,共同打造基于区块链的企业级分布式账本底层技术,用于构建支撑业务的行业应用和平台. 超级账 ...

  8. 微信小程序 checkbox 组件

    checkbox 组件 是一个多选框组件,还可以使用 checkbox-group 组件 来进行绑定事件和实现,真正意义上的多选 checkbox的属性: value: 属性值 字符串 当在 chec ...

  9. 从 2017 OpenStack Days China 看国内云计算的发展现状

    目录 目录 China Runs On OpenStack 私有云正式迈入成熟阶段 混合云的前夜已经来临 China Runs On OpenStack OpenStack Days China 作为 ...

  10. jmeter之自动重定向和跟随重定向用法

    jmeter工具里面有自动重定向和跟随重定向这2种选择,那么他们到底有啥区别呢? 目录 1.自动重定向和跟随重定向 2.举个例子 1.自动重定向和跟随重定向 01.3XX的请求一般要使用跟随重定向,2 ...