1.Hive基本操作

#创建数据库
hive>create database name;
#创建新表
hive> create table students(id int,name string);
#创建一个新表,结构与其他一样
hive> create table new_students like students;

#创建分区表
hive> create table students(id int,name string) partitioned by(region string);
#删除分区
hive> ALTER TABLE students DROP partition_spec; #从本地文件加载数据,load是单纯的复制/移动操作,overtite会覆盖已有数据
hive> load data local inpath'path1' OVERWRITE INTO TABLE students;
#加载分区表的数据
hive> load data local inpath'paht1' into table students partition(region="Shanghai"); #展示数据库
hive> show databases;
#展示表的分区
hive> show partitions students;
#展示所有表
hive> show tables;
hive> show tables '.*s';
#显示表的结构
hive> describe students;
#显示所有函数
hive> show functions;
#查看函数用法
hive> describe function name_function;
#更新表名
hive> ALTER TABLE name1 RENAME TO name2;
#添加新的一列,并注释
hive> ALTER TABLE students ADD COLUMNS(columns_new int comment "a comment");
#修改列的名字,类型,位置,注释
hive>
#删除表
hive> DROP TABLE students;
#删除表但保留表的结构定义
hive> dfs -rmr /user/hive/warehouse/students; #将查询结果存入Hive表
hive> INSERT OVERWRITE TABLE student [PARTITION(partcol1=val1,partcol2=val2...)] select_statement from from_statement;
#将查询结果存入HDFS文件系统
hive> insert overwrite [local] DIRECTORY directory1 select_statement from from_statement;
#将结果插入不同表中,还能写入分区,hdfs和本地目录
FROM src
INSERT OVERWRITE TABLE dest1 SELECT src.* WHERE src.key < 100
INSERT OVERWRITE DIRECTORY '/tmp/dest2.out' SELECT src.key, src.value WHERE src.key >= 100 and src.key < 200
INSERT OVERWRITE TABLE dest3 PARTITION(ds='2008-04-08', hr='12') SELECT src.key WHERE src.key >= 200 and src.key < 300
INSERT OVERWRITE LOCAL DIRECTORY '/tmp/dest4.out' SELECT src.value WHERE src.key >= 300;
#内连接
hive> select sales.*,things.* from sales,things on(sales.id=things.id); #外连接:
hive> SELECT sales.*, things.* FROM sales LEFT OUTER JOIN things ON (sales.id = things.id);
hive> SELECT sales.*, things.* FROM sales RIGHT OUTER JOIN things ON (sales.id = things.id);
hive> SELECT sales.*, things.* FROM sales FULL OUTER JOIN things ON (sales.id = things.id);

#查看hive为某个查询使用多少个MR作业
hive> Explain select sales.*,things.* from sales,things on(sales.id=things.id);

#创建视图
hive> CREATE VIEW valid_records AS SELECT * FROM records2 WHERE temperature !=9999;
#查看视图详细信息
hive> DESCRIBE EXTENDED valid_records;
#删除视图
hive> drop view name_view;

2. Select操作详解

SELECT [ALL | DISTINCT] select_expr, select_expr, ...
FROM table_reference
[WHERE where_condition]
[GROUP BY col_list [HAVING condition]]
[ CLUSTER BY col_list
| [DISTRIBUTE BY col_list]]
[SORT BY| ORDER BY col_list]
[limit number]

a.使用ALL和DISTINCT选项区分对重复记录的处理,默认是ALL。

b.Where条件,支持AND,OR,IN ,NOT IN,不支持EXIST 和 NOT EXIST。

c.Order by全局排序,只有一个Reduce任务。Sort by 只在本机做排序。

d.Limit 限制查询记录数

select * from t1 limit 5;

 实现Top K查询

SET mapred.reduce.tasks=1
SELECT * FROM test SORT BY amount DESC LIMIT k;

e.UNION ALL合并多个select的查询结果

select_statement UNION ALL select_statement UNION ALL select_statement ...f.

f. LEFT SEMI JOIN 是 in/exist子查询的更高效的实现。

SELECT a.key,a.value
FROM a
WHERE a.key in
(select b.key from B); =>>
select a.key,a.value from a LEFT SEMI JOIN b on(a.key=b.key);

  

  

 

Hadoop-Hive学习笔记(2)的更多相关文章

  1. hive学习笔记之一:基本数据类型

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  2. hive学习笔记之三:内部表和外部表

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  3. hive学习笔记之四:分区表

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  4. hive学习笔记之五:分桶

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  5. hive学习笔记之六:HiveQL基础

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  6. hive学习笔记之七:内置函数

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  7. hive学习笔记之九:基础UDF

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  8. hive学习笔记之十:用户自定义聚合函数(UDAF)

    欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇概览 本文是<hive学习笔记>的第十 ...

  9. hive学习笔记之十一:UDTF

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  10. Hadoop入门学习笔记---part4

    紧接着<Hadoop入门学习笔记---part3>中的继续了解如何用java在程序中操作HDFS. 众所周知,对文件的操作无非是创建,查看,下载,删除.下面我们就开始应用java程序进行操 ...

随机推荐

  1. Java学习笔记——关于位运算符的问题

    我就之直接贴图了!不想排版了! 有什么问题,欢迎大家指出,帮助我提高,谢谢!

  2. 三、docker学习笔记——安装postgresql

    1.docker pull postgres 2.docker run --name postgres -e POSTGRES_PASSWORD=123456 -p 5432:5432 -d post ...

  3. IONIC屏幕方向锁定

    如果希望阻止app在设备旋转时发生横屏,可以使用这个插件: cordova plugin add cordova-plugin-screen-orientation // set to either ...

  4. Doing Research Needs Efforts

    What is research?   From YouTube Video or baiduyun Links What does not? spend many hours before you ...

  5. iText中输出 中文

    iText中输出中文,有三种方式: 1.使用iTextAsian.jar中的字体    BaseFont.createFont("STSong-Light", "UniG ...

  6. Mongod启动失败修复方法

    可能的原因:上次服务未正常关闭 1.删除data/db目录下的mongo.lock文件 2.删除/tmp/mongodb-27017.sock文件

  7. 【转】Android学习系列(39)--Android主题和样式之系统篇(上)

    [基于最新的Android4.4的源码分析] 每家公司或者每个移动团队无不想开发出一套自己的UI框架,融入自己的设计和特性,这必然会去修改android的ui.所以,学习和理解android的UI设计 ...

  8. 20、Springboot 与数据访问(JDBC/自动配置)

    简介: 对于数据访问层,无论是SQL还是NOSQL,Spring Boot默认采用整合 Spring Data的方式进行统一处理,添加大量自动配置,屏蔽了很多设置.引入 各种xxxTemplate,x ...

  9. shiro集成spring&工作流程&DelegatingFilterProxy

    1.集成Spring 参考文献: 新建web工程: ehcache-core来自Hibernate wen.xml <?xml version="1.0" encoding= ...

  10. Azure服务器上不了外网

    将服务器的DNS改成223.5.5.5或者223.6.6.6