mdl是数据操作类的语言,包括向数据表加载文件,写查询结果等操作

hive有四种导入数据的方式
》从本地加载数据 LOAD DATA LOCAL INPATH './examples/files/kv1.txt' OVERWRITE INTO TABLE [tableName];
》从hdfs上加载数据 load data inpath 'hdfs://192.168.177.124:9000/opt/hive/warehouse/student.txt'
》从其他表中查出数据并加载到其他表中 insert overwrite table student_1 partition(ds='',country ='B eiJing') select studentid,sex,address,email from student_3 where ad dress='BeiJing';
》创建表的时候从其他表中查出数据
向表中加载文件
当数据加载到表里的时候不会对数据进行任何转换,只是单纯的复制/移动 到hive表对应的位置
 
 从本地文件加载到表
hive> LOAD DATA LOCAL INPATH './examples/files/kv1.txt' OVERWRITE INTO TABLE [tableName];
local:表示从本地加载文件(想从hdfs中加载文件,则不适用locall)
inPath:要加载文件的位置(可以是绝对路径或者相对路径,相对路径会从默认当前用户下的相对路径)
overwrite:覆盖表中的数据,如果没有overwrite则会在表中数据的后面追加数据
tableName:要加载的表名
加载的目标可以是一个表或者是一个分区,如果表中含有分区的话则必须指定每个分区的分区名。
可以应用一个文件(hive会将文件移动到表所对应的目录中)或者一个目录
 
向分区表中添加数据(将查询的结果写入文件系统)
(1)通常情况下需要预先创建好该分区,才能使用
alter table student_1 add partition (ds='',country ='BeiJing');
hdfs上会创建给相应的文件目录
/opt/hive/warehouse/student_1/ds=20161219/country=BeiJing


(2)插入sql(可以向表/分区中写入多条数据写入多条数据)
hive> insert overwrite table student_1 partition(ds='20161219',country ='BeiJing') select studentid,sex,address,email from student_3 where address='BeiJing';
插入成功
 
从hdfs上导出数据到hive表中
load data inpath 'hdfs://192.168.177.124:9000/opt/hive/warehouse/student.txt'
into table tableName
partition (address='BeiJing');
可以使用正则表达式
select '(name|age)?+' form [tableName]
 
基于分区查询
select 是对全表进行扫描,如果创建表中有parttion by语句,可以对查询的语句进行剪枝,hive现在只对在where分区中的字段进行扫描
select*from tableName where address='BeiJing'
hive目前不支持having,可以子查询来完成
hive有很多语法都跟sql类似,比如group by ,join,having,多表insert,streaming
 
删除表数据
truncate table tableName;
删除hive中的表
drop table tableName;
删除表中的特定行
delete from tableName t where t....
hive执行文件中的sql(Hive可以运行保存在文件里面的一条或多条的语句,只要用-f参数)
bin/hive -f [文件名] //这种是没有进入hive命令行语法

一般文件的名称后缀是'.hsql 或者.q'

source [文件名]; 例:source /home/wyp/Documents/test;//进入hive命令行后的语法
 

hive数据操作的更多相关文章

  1. 使用Hive或Impala执行SQL语句,对存储在HBase中的数据操作

    CSSDesk body { background-color: #2574b0; } /*! zybuluo */ article,aside,details,figcaption,figure,f ...

  2. 使用Hive或Impala执行SQL语句,对存储在Elasticsearch中的数据操作(二)

    CSSDesk body { background-color: #2574b0; } /*! zybuluo */ article,aside,details,figcaption,figure,f ...

  3. 使用Hive或Impala执行SQL语句,对存储在Elasticsearch中的数据操作

    http://www.cnblogs.com/wgp13x/p/4934521.html 内容一样,样式好的版本. 使用Hive或Impala执行SQL语句,对存储在Elasticsearch中的数据 ...

  4. [转]impala操作hive数据实例

    https://blog.csdn.net/wiborgite/article/details/78813342 背景说明: 基于CHD quick VM环境,在一个VM中同时包含了HDFS.YARN ...

  5. HIVE之 DDL 数据定义 & DML数据操作

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

  6. Hive 表操作(HIVE的数据存储、数据库、表、分区、分桶)

    1.Hive的数据存储 Hive的数据存储基于Hadoop HDFS Hive没有专门的数据存储格式 存储结构主要包括:数据库.文件.表.试图 Hive默认可以直接加载文本文件(TextFile),还 ...

  7. hive从入门到放弃(三)——DML数据操作

    上一篇给大家介绍了 hive 的 DDL 数据定义语言,这篇来介绍一下 DML 数据操作语言. 没看过的可以点击跳转阅读: hive从入门到放弃(一)--初识hive hive从入门到放弃(二)--D ...

  8. Hive常用操作之数据导入导出

    一.Hive数据导入导出 1.hive数据导出 很多时候,我们在hive中执行select语句,希望将最终的结果保存到本地文件或者保存到hdfs系统中或者保存到一个新的表中,hive提供了方便的关键词 ...

  9. hive数据导入方法

    可以通过多种方式将数据导入hive表 1.通过外部表导入 用户在hive上建external表,建表的同时指定hdfs路径,在数据拷贝到指定hdfs路径的同时,也同时完成数据插入external表. ...

随机推荐

  1. HtmlUnit初探

    HtmlUnit是一个用java实现的浏览器,是一个无界面的浏览器(headless browser),跟phatomJS好像是同一类事物. HtmlUnit基于apache httpClient,而 ...

  2. mysql中价格用什么数据类型表示最佳?

    DECIMAL和NUMERIC都行DECIMAL和NUMERIC类型在MySQL中视为相同的类型.它们用于保存必须为确切精度的值,例如货币数据.当声明该类型的列时,可以(并且通常要)指定精度和标度:例 ...

  3. cout格式化输出

    问题描述: 有N条绳子, 它们的长度分别为Li. 如果从它们中切割出K条相同的绳子的话,这K条绳子每条最长能有多少? (备注:答案保留两位小数) <1>精确到小数点后两位输出 #inclu ...

  4. php面向对象编程(二)

    现在我们来了解一下面向对象的一个封装性的问题 封装性:在我的理解里面 可以理解为一个u盘 我们使用u盘的接口与电脑进行数据之间的交互 但是我们不能看到里面的结构 这个特性我们可以称为封装性 好处:利用 ...

  5. jsp项目部署

    每新建一个项目都要发布到服务器,也就是项目部署,在tomcat中的  tomcat\Tomcat 6.0\webapps  路径下就会新建你的项目文件夹 webapps是tomcat的默认访问路径,很 ...

  6. SVN集中式版本控制器的安装、使用与常见问题汇总

    SVN是Subversion的简称,是一个开放源代码的版本控制系统,它采用了分支管理系统,集中式版本控制器 官方网站:https://www.visualsvn.com/ 下载右边的服务器端,左边的客 ...

  7. RabbitMQ Topic exchange

    Topic exchange topic与之前的每个类型都不同(ps:废话每个都是不同的).Topic解决了我们另一个需求.举个例子,有一个做资讯的公司,他们会收集各种科技公司的动态并且第一时间转发出 ...

  8. Python * 和 ** 参数问题

    Problem def calcuate(*keys) def calcluate(**keys) Slove *: 用来传递人一个无名字的参数,这些参数会以一个Tuple的形式来访问. **: 用来 ...

  9. C#的winform控件命名规范

    注:这里用红字标记的部分表示有重复出现,括号内为替代表示方案 1.标准控件 序号 控件类型简写 控件类型 1 btn Button 2 chk CheckBox 3 ckl CheckedListBo ...

  10. Java Web笔记之Servlet(1)

    今天在学习Servlet时,使用浏览器显示的网页效果与预期的有差异,仔细查找发现实<!DOCTYPE>声明的问题,截图如下: 代码如下: package secondServlet; im ...