hadoop学习笔记--12.hive DML操作

一、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 查询


1.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

hadoop学习笔记--12.hive DML操作_第1张图片

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)