目录

 二. 操作符 (Relational Operators)

2.1 关系操作符

2.2 算数运算符

2.3 逻辑运算符

2.4 复杂的运算符


 hive是基于Hadoop的一个数据仓库工具,用来进行数据提取、转化、加载,这是一种可以存储、查询和分析存储在Hadoop中的大规模数据的机制。hive数据仓库工具能将结构化的数据文件映射为一张数据库表,并提供SQL查询功能,能将SQL语句转变成MapReduce任务来执行。Hive的优点是学习成本低,可以通过类似SQL语句实现快速MapReduce统计,使MapReduce变得更加简单,而不必开发专门的MapReduce应用程序。hive是十分适合数据仓库的统计分析和Windows注册表文件。

最近会给大家分享下自己之前整理的hive笔记, 如有错误还望指出;

hive官网: https://hive.apache.org/

wiki上的hive指南: https://cwiki.apache.org/confluence/display/Hive/GettingStarted

 

二. 操作符 (Relational Operators)

2.1 关系操作符

以下操作符比较操作数(operands)从而产生TRUE/FALSE值。 

运算符

操作数

描述

A = B

所有基本类型

如果表达A等于表达B,结果TRUE ,否则FALSE。

A != B

所有基本类型

如果A不等于表达式B表达返回TRUE ,否则FALSE。

A < B

所有基本类型

TRUE,如果表达式A小于表达式B,否则FALSE。

A <= B

所有基本类型

TRUE,如果表达式A小于或等于表达式B,否则FALSE。

A > B

所有基本类型

TRUE,如果表达式A大于表达式B,否则FALSE。

A >= B

所有基本类型

TRUE,如果表达式A大于或等于表达式B,否则FALSE。

A IS NULL

所有类型

TRUE,如果表达式的计算结果为NULL,否则FALSE。

A IS NOT NULL

所有类型

FALSE,如果表达式A的计算结果为NULL,否则TRUE。

A LIKE B

字符串

TRUE,如果字符串模式A匹配到B,否则FALSE。关系型数据库中的like功能。

A RLIKE B

字符串

如果A任何子字符串匹配Java正则表达式B;否则FALSE。

A REGEXP B

字符串

等同于RLIKE.

示例1:

-- if(struct_col.name='Vincent1',1,0) 可以理解为 struct_col.name='Vincent1' ? 1 : 0
select if(struct_col.name='Vincent1',1,0),struct_col.name from complex where map_col['english'] like '%a%';
select if(struct_col.name='Vincent1',1,0),struct_col.name from complex where map_col['english'] RLIKE '\\S';
select if(struct_col.name='Vincent1',1,0),struct_col.name from complex where map_col['english1'] is null;
select if(struct_col.name='Vincent1',1,0),struct_col.name from complex where map_col['english'] is not null;

hive级联求和函数 hive 集合运算_hive级联求和函数

 

示例2:

select * from complex where map_col['english'] RLIKE '\\S';
select * from complex where map_col['english1'] is null;
select * from complex where 'hel666' RLIKE '\\d';
select * from complex where 'hel666' RLIKE '\\S';

hive级联求和函数 hive 集合运算_数据分析_02

 

2.2 算数运算符

这些运算符支持的操作数各种常见的算术运算。所有这些返回数字类型。

下表描述了在Hive中可用的算术运算符:

运算符

操作

描述

A + B

所有数字类型

A加B的结果

A - B

所有数字类型

A减去B的结果

A * B

所有数字类型

A乘以B的结果

A / B

所有数字类型

A除以B的结果

A % B

所有数字类型

A除以B.产生的余数

A & B

所有数字类型

A和B的按位与结果

A | B

所有数字类型

A和B的按位或结果

A ^ B

所有数字类型

A和B的按位异或结果

~A

所有数字类型

A按位非的结果

hive级联求和函数 hive 集合运算_大数据_03

 

2.3 逻辑运算符

运算符是逻辑表达式。所有这些返回TRUE或FALSE。

运算符

操作

描述

A AND B

boolean

TRUE,如果A和B都是TRUE,否则FALSE。

A && B

boolean

类似于 A AND B.

A OR B

boolean

TRUE,如果A或B或两者都是TRUE,否则FALSE。

A || B

boolean

类似于 A OR B.

NOT A

boolean

TRUE,如果A是FALSE,否则FALSE。

!A

boolean

类似于 NOT A.

hive级联求和函数 hive 集合运算_大数据_04

 

2.4 复杂的运算符

这些运算符提供一个表达式来接入复杂类型的元素。

运算符

操作

描述

A[n]

A是一个数组,n是一个int

它返回数组A的第n个元素,第一个元素的索引0。

M[key]

M 是一个 Map<K, V> 并 key 的类型为K

它返回对应于映射中关键字的值。

S.x

S 是一个结构体

它返回S的x字段