Hive 数据操作:数组、映射访问与数值、逻辑运算
需积分: 41 136 浏览量
更新于2024-08-08
收藏 184KB PDF 举报
"这篇文档主要介绍了Hive中的复杂类型访问操作以及常见的函数使用,包括array和map类型的访问,同时还涵盖了关系运算、数学运算、逻辑运算和数值计算等多个方面的Hive函数大全。"
在Hive中处理复杂数据类型时,我们可以使用特定的语法来访问和操作这些类型。这里主要涉及两种复杂类型:array和map。
1. **Array类型访问**:
- **语法**:`A[n]`
- **操作**:A 是一个array类型,n 是一个int类型。
- **说明**:通过索引n可以访问array A中的第n个元素。注意,数组的索引是从0开始的。例如,我们有一个array `A = ['foo', 'bar']`,那么 `A[0]` 返回 'foo',而 `A[1]` 返回 'bar'。
以下是一个实际的Hive SQL示例:
```sql
hive> create table lxw_test as select array("tom","mary","tim") as t from lxw_dual;
hive> select t[0],t[1],t[2] from lxw_test;
```
结果应为:
```
tom mary tim
```
2. **Map类型访问**:
- **语法**:`M[key]`
- **操作**:M 是一个map类型,key 是map中的键。
- **说明**:通过键值key可以获取map M中对应的value。例如,我们有一个map `M = {'f' -> 'foo', 'b' -> 'bar', 'all' -> 'foobar'}`,那么 `M['all']` 将返回 'foobar'。
下面是map类型的Hive SQL示例:
```sql
hive> Create table lxw_test as select map('100','tom','200','mary') as t from lxw_dual;
hive> select t['200'],t['100'] from lxw_test;
```
结果应为:
```
mary tom
```
此外,文档还列举了一系列Hive中的基本运算和函数:
- **关系运算**:包括等值比较、不等值比较、小于比较、小于等于比较、大于比较、大于等于比较、空值判断和非空判断,以及LIKE、RLIKE和REGEXP等字符串比较操作。
- **数学运算**:涵盖加法、减法、乘法、除法、取余、位运算(位与、位或、位异或和位取反)等。
- **逻辑运算**:包括逻辑与、逻辑或和逻辑非操作。
- **数值计算**:包含各种数值函数,如取整(round、round_)、向下取整(floor)、向上取整(ceil、ceiling)、随机数(rand)、指数(exp)、对数(log系列)、幂运算(pow、power)、开平方(sqrt)、进制转换(bin、hex、unhex、conv)、绝对值(abs)、正取余(pmod)、三角函数(sin、asin、cos、acos)以及正负值函数(positive、negative)。
- **日期函数**:包括将UNIX时间戳转换为日期(from_unixtime)、获取当前UNIX时间戳(unix_timestamp)、日期转UNIX时间戳、日期时间转日期、提取年份等。
这个文档为Hive用户提供了全面的函数参考,帮助他们在处理复杂数据类型和进行各种计算时能更有效地操作和分析数据。
2022-04-10 上传
2022-07-13 上传
2014-08-09 上传
2017-10-31 上传
2022-03-05 上传
2012-07-04 上传
2016-10-31 上传
史东来
- 粉丝: 43
- 资源: 3990
最新资源
- -ImportExcelOnec
- learning-web-technologies-spring-2020-2021-sec-h
- msgpack-rpc-jersey-blank:使用Jetty + Jersey + Jackson + MessagePack的现代Java RPC堆栈
- QQ自动点赞源码-易语言
- Simu5G:Simu5G-用于OMNeT ++和INET的5G NR和LTELTE-A用户平面仿真模型
- rust_template::crab:Rust项目模板。 只需运行init.py
- mvuehr:微人事前端
- SRC:HAB沙箱
- babylon:Web应用程序允许语言变量的国际化
- grunt-less-branding:根据品牌处理 LESS 文件
- neo_spacecargo:示例双向遍历扩展
- Frotend_Facturacion
- jsonotron:一个用于管理基于JSON模式的类型系统的库
- angular-task-1:Angular第一项任务:库存管理应用
- sclc:狮子座的约会约会系统
- NUCLEO-H745 CUBEIDE tcp通讯