目录
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 关系操作符
运算符 | 操作数 | 描述 |
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. |
-- 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;
示例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';
2.2 算数运算符
运算符 | 操作 | 描述 |
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按位非的结果 |
2.3 逻辑运算符
运算符 | 操作 | 描述 |
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. |
2.4 复杂的运算符
运算符 | 操作 | 描述 |
A[n] | A是一个数组,n是一个int | 它返回数组A的第n个元素,第一个元素的索引0。 |
M[key] | M 是一个 Map<K, V> 并 key 的类型为K | 它返回对应于映射中关键字的值。 |
S.x | S 是一个结构体 | 它返回S的x字段 |
原文地址: https://blog.csdn.net/DelevinData/article/details/107489579