惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Blog — PlanetScale
Blog — PlanetScale
博客园 - 司徒正美
Vercel News
Vercel News
F
Fortinet All Blogs
月光博客
月光博客
G
Google Developers Blog
博客园 - Franky
GbyAI
GbyAI
The Cloudflare Blog
I
InfoQ
雷峰网
雷峰网
WordPress大学
WordPress大学
罗磊的独立博客
大猫的无限游戏
大猫的无限游戏
T
The Blog of Author Tim Ferriss
Apple Machine Learning Research
Apple Machine Learning Research
博客园 - 聂微东
小众软件
小众软件
腾讯CDC
B
Blog
量子位
V
V2EX
S
SegmentFault 最新的问题
Google DeepMind News
Google DeepMind News

博客园 - GeneJiang

窗口函数的使用 拉链表(Zipper Table)完整总结 —— 数据仓库 SCD Type 2 的经典实现 Kimball 维度建模:数据仓库领域最实用的“用户友好”方法论 DMP 数据接入测试全攻略:从“水龙头”把关到端到端信任 —— 理论解析 + 阿里云 DataWorks、AWS Glue、Azure Data Factory + 自研 EMR(基于 CDH)实战经验 ETL 全链路数据污染与逻辑错误定位实战经验分享 资产损失防控关键点-那些年被薅的“羊毛” 计算广告中常用的计算单位 MVC设计模式(Python) Jupyter NoteBook 的快捷键使用指南 Hive Tutorial(一) - Hive的数据类型 基于TestNG和Maven的接口测试之(一)- 基础配置 195 Tenth line-取第十行 Python常用库之Requests自我总结 Linux基本命令(一) Presto Step by Step之一Presto简介 python 判断字符串是否包含子字符串 Python常用的排序 CentOS7安装(三)- 配置阿里云yum源 OSQA的配置 MySQL学习 (三) Limit-Distinct-Union
Hive常用函数
GeneJiang · 2019-11-09 · via 博客园 - GeneJiang

Hive常用函数

cast函数

CAST函数:显式的将一个类型的数据转换成另一个数据类型。

语法为:cast(value AS TYPE)

map函数

MAP:MAP包含key->value键值对,可以通过key来访问元素。比如”userlist”是一个map类型,其中username是key,password是value;那么我们可以通过userlist['username']来得到这个用户对应的password

语法:map(k1,v1,k2,v2,…)

返回值:{'k1':'v1', 'k2':'v2'}

说明:使用给定的 key-value 对,构造一个 map 数据结构

举例:

hive> select map('k1','v1','k2','v2') from test;
OK
{"k2":"v2","k1":"v1"}

表格生成函数

explode

数组拆分成多行: explode
语法: explode(ARRAY)
返回值: 多行
说明: 将数组中的元素拆分成多行显示
举例:

hive> select explode(array(1,2,3)) from lxw1234;
OK
1 
2 
3

hive> select explode(map('k1','v1','k2','v2')) from lxw1234;
OK
k2 v2
k1 v1

判断函数

函数: if

If函数:if和case差不多,都是处理单个列的查询结果。

语法: if(boolean testCondition, T valueTrue, T valueFalseOrNull)

返回值: T

说明:  当条件testCondition为TRUE时,返回valueTrue;否则返回valueFalseOrNull

举例:if(条件表达式,结果1,结果2)相当于java中的三目运算符,只是if后面的表达式类型可以不一样。

hive> select if(a=a,’bbbb’,111) from lxw_dual;

-- result: bbbb

hive> select if(1<2,100,200) from lxw_dual;

-- result: 200

非空查找函数: COALESCE

语法: COALESCE(T v1, T v2, …)

返回值: T

说明:  返回参数中的第一个非空值;如果所有值都为NULL,那么返回NULL

hive> select COALESCE(null,’aaa’,50) from lxw_dual;

-- result: aaa

条件件判断函数: CASE A

这种CASE A和if差不多,条件查询(常用)

语法:

CASE a
WHEN b THEN
    c [
WHEN d THEN
    e]* [
ELSE
    f]
END

返回值: T

说明:如果a等于b,那么返回c;如果a等于d,那么返回e;否则返回f

举例:

hive> Select case 100 when 50 then 'tom' when 100 then 'mary' else 'tim' end from lxw_dual;

        mary

hive> Select case 200 when 50 then 'tom'when 100 then 'mary' else 'tim' end from lxw_dual;

        tim
  1. 条件判断函数 case

这种case,case后面没有表达式,用于处理单个列的查询结果

语法:

CASE WHEN a THEN b [WHEN cTHEN d]* [ELSE e] END

返回值: T

说明:如果a为TRUE,则返回b;如果c为TRUE,则返回d;否则返回e

举例:

hive> select case when 1=2 then 'tom' when 2=2 then 'mary' else 'tim' end from lxw_dual;

          mary

hive> select case when 1=1 then 'tom' when 2=2 then 'mary' else 'tim' end from lxw_dual;

         tom