hadoop学习笔记--12.hive DML操作
2017-07-31 21:47
369 查看
一、hive DML的基本操作 |
https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL
1.加载与插入数据
LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename [PARTITION (partcol1=val1, partcol2=val2 ...)]
INSERT INTO TABLE tablename [PARTITION (partcol1[=val1], partcol2[=val2] ...)] VALUES values_row [, values_row ...] Where values_row is: ( value [, value ...] )
常见的有以下几个方式:
1) 加载本地文件到hive表(LOCAL)
例:load DATA LOCAL INPATH‘/data/user.txt’ INTO table user partition (month =’201707’ ,day=’13’);
2) 加载hdfs文件到hive中
例:load DATA INPATH‘/data/user.txt’INTO table user partition (month =’201707’ ,day=’13’);
3) 加载数据覆盖表中已有的数据
例:load data inpath ‘/user/liu/hive/datas/emp.txt’ overwrite into table emp ;
4) 创建表是通过insert加载别的表已有的数据
create table emp_ci like emp ;
insert into table emp_ci select * from emp ;
5) 创建表的时候通过location指定加载
6) Import
create table db_hive.emp like default.emp ;
import table db_hive.emp from ‘/user/beifeng/hive/export/emp_exp’;
2.导出数据
1. insert [overwrite] [local] directory ‘导出的文件地址’ select * from table_name;
2. 指定导出的行列格式。
insert [overwrite] [local] directory ‘文件地址’
ROW FORMAT DELIMITED FIELDS TERMINATED BY ‘\t’ COLLECTION ITEMS TERMINATED BY ‘\n’ select * from table_name ;
3. 查询结果重定向。
bin/hive -e “select * from emp ;” > /opt/datas/exp_res.txt
4. export。
EXPORT TABLE default.emp TO ‘/user/beifeng/hive/export/emp_exp’ ;(HDFS上的目录)
5. sqoop。
3.删除数据
DELETE FROM tablename [WHERE expression]
4.更新数据
UPDATE tablename SET column = value [, column = value ...] [WHERE expression]
注:hive主要是分析数据的,所以一般不会对数据进行删除或更新。
二、hive 查询 |
group by
对查询的数据根据表的某列进行分组。可以配合having一起使用。
官方参考文档:
https://cwiki.apache.org/confluence/display/Hive/LanguageManual+GroupBy
特别注意:select要选择的字段必须为聚合函数或者在group by后面出现过。
2.hive的排序方式
order by :对全局数据的一个排序,仅仅只有1个reduce
sort by :对每一个reduce内部数据进行排序的,全局结果集来说不是排序
distribute by:类似于MapReduce中分区partition,对数据进行分区,结合sort by进行使用使reduce负载均衡。
注意:distribute by 必须要在sort by 前面。
cluster by :当distribute by和sort by 字段相同时,可以使用cluster by ;
官方参考文档:
https://cwiki.apache.org/confluence/display/Hive/LanguageManual+SortBy
3.hive的Distinct
4.hive的聚合函数
Hive内部提供了很多函数给开发者使用,包括数学函数,类型转换函数,条件函数,字符函数,聚合函数,表生成函数等等,这些函数都统称为内置函数。
参考本文:http://www.cnblogs.com/MOBIN/p/5618747.html
本文将函数所有的聚合函数都一一说明了。
5.join
hive连接有很多种形式。分为内连接,左外连接,右外连接,全外连接和半连接。通常会在两个表进行联合分析使用。
本文在这不多做介绍,其实这几种连接方式不同体现在以哪张表为主表而已。举个例子,当A学生表与B课程表联合分析时,A和B都有一列是学生的学号ID。假设A表在前以左外连接的方式联合B表,则返回结果的表以A表为主,A表的关联不上的数据则返回NULL。
可以参考:http://lxw1234.com/archives/2015/06/315.htm。
相关文章推荐
- Hadoop学习笔记之操作hive
- hadoop学习笔记-hive安装及操作
- hadoop学习笔记3:shell下的hdfs操作
- Hadoop之Hive框架学习(笔记18)
- Hadoop Hive sql语法详解3--DML 操作:元数据存储(3)
- Hadoop学习笔记(十八)---Hive内部表,外部表,分区表,桶表
- hadoop学习笔记之HiveSQL DDL
- Hadoop学习笔记(三):Hive简介
- Hadoop学习笔记之Hive
- Hadoop学习笔记(十七)---Hive安装及配置
- Hadoop学习笔记(十九)---Hive Java Api
- Hive学习笔记 --- return code 1 from org.apache.hadoop.hive
- hadoop学习之--Hive笔记
- Hadoop--学习笔记 在Eclipse中操作远程hdfs文件
- Hadoop 学习笔记之Hive安装
- Hive学习笔记-API简单操作
- hadoop学习笔记1.使用shell和JAVA API操作HDFS
- Hive学习笔记 --- Hive分区表的操作
- hadoop学习笔记(二):安装hive
- Spark Hadoop集群部署与Spark操作HDFS运行详解---Spark学习笔记10