美文网首页
Hive基础教程

Hive基础教程

作者: 稀饭里的辣椒 | 来源:发表于2018-06-06 10:04 被阅读0次

基本命令

切换数据库: use <db_name>;

表重命名:ALTER TABLE table1 RENAME TO table2;

增加表分区

ALTER TABLE table1 ADD IF NOT EXISTS 
PARTITION (year = 2001)
PARTITION (year = 2002)
...;

删除表分区
ALTER TABLE table1 DROP IF EXISTS PARTITION (year = 2001);

重命名列名
ALTER TABLE table1 CHANGE COLUMN <old_col> <new_col>

插入新列

ALTER TABLE table1 ADD COLUMNS(
app_name STRING
session_id LONG);

改变存储格式

ALTER TABLE table1
[PATITION (year = 2001)]
SET FILEFORMAT SEQUENCEFILE;

本地导入数据

LOAD DATA LOCAL INPATH '${env: HOME}/ California/employees'
OVERWRITE INTO TABLE employees
[PARTITION (country = 'US')];

通过查询语句插入数据

INSERT OVERWRITE TABLE employees
[PARTITION(...)]
SELECT * FROM stage_employees se
WHERE se.cnty = 'US' and se.et = 'OR';

通过单个查询语句创建表

CREATE TABLE table1
AS SELECT name, salary, address
FROM employees es
WHERE es.cnty = 'US';

导出数据

INSERT OVERWRITE DIRECTORY '/tmp/ca_employees'
SELECT name, salary, address
FROM employees es
WHERE es.cnty = 'US'

Hive 查询

SELECT col1, col2, col3 FROM table1 WHERE ...可以增加一些数学运算符 或者 自带函数

聚合函数

SELECT count(*), avg(salary) 
FROM employees
GROUP BY cnty;

LIMIT: LIMIT从句用于限制结果的行数

设置列别名

SELECT count(*) as sum_num , avg(salary) as avg_sal
FROM employees
GROUP BY cnty; 

LIKE: 与通配符 % 一起用, %可代替任何内容

HAVING: HAVING从句用来限制 GROUP BY产生的结果的输出。

SELECT avg(salary)
FROM employees
GROUP BY cnty
HAVING avg(salary) >  500;

JOIN

Hive SQL支持JOIN操作,但是只支持等值连接。

inner join

SELECT  a.ymd, a.price, b.price
FROM stocks a inner join stocks b on a.ymd = b.ymd
WHERE a.name = "IBM" and b.name  = "APPLE"

理论上一个JOIN 需要启动一个mapreduce任务,但是当多个表做连接时ON子句的连接键一样的话只启用一个mapreduce任务。

JOIN优化,把大表放在最后 或者 在代码中加入/*+STREAMTABLE(小表)*/

LEFT OUTER JOIN

image.png

RIGHT OUTER JOIN

image.png

FULL OUTER JOIN

LEFT SEMI-JOIN

左半边连接 只返回左表中满足on条件的结果。

map-side join

在JOIN时,把小表加载到内存中能够加快JOIN效率。


image.png

SORT BY、ODER BY 、DISTRIBUTE BY 、CLUSTER BY

ODER BY 对数据做全局排序,最后用一个reduce做排序
SORT BY 对数据做局部排序,在每一个reduce中排序
DISTRIBUTE BY控制map的输出在reduce中是如何划分的。
CLUSTER BY 相当于结合DISTRIBUTE BY 和 SORT BY,对同一列做DISTRIBUTE 和 SORT,但是只支持默认的升序排列。

数值转化

CAST( VALUE AS TYPE)

相关文章

  • Hive基础教程

    基本命令 切换数据库: use ; 表重命名:ALTER TABLE table1 RENAME...

  • 数据仓库Hive

    Hive产生背景 Hive概述 HIve体系架构 Hive部署架构 Hive和RDBMS区别 Hive部署以及快速...

  • 数据查询-Hive基础

    outline 什么是Hive 为什么需要Hive Hive的架构 Hive的常用操作 什么是Hive Hive由...

  • 大数据知识 | hive初识

    hive简介 hive架构 hive是什么 官网这样说:https://hive.apache.org/ hive...

  • Hive | Hive 安装详解

    一、Hive 介绍 二、准备工作 三、Hive下载 四、Hive 安装 五、Hive 启动 一、Hive 介绍 H...

  • Hive日常使用

    hive 创建表: hive 执行: =========================hive 调用Python...

  • Hive常用的几种交互操作

    查看hive下的交互命令方式 -help(hive 外) 命令:bin/hive -helpusage: hive...

  • 【Hive】

    Hive的安装 Hive官网地址 http://hive.apache.org/[http://hive.apac...

  • Hive进阶

    hive配置,命令 hive查询显示列名 hive默认分隔符 \001 hive命令行中查看当前hive环境变量 ...

  • Hive 入门

    Hive官网 Hive概述 Hive 的底层执行引擎有 :MapReduce,Tez,Spark- Hive on...

网友评论

      本文标题:Hive基础教程

      本文链接:https://www.haomeiwen.com/subject/aelmsftx.html