一、函数
1.单行函数
特点:输入一行,输出一行(一进一出)
可分为日期函数,字符串函数,集合函数,数学函数和流程控制函数等
1)算术运算函数
2)数值函数
--round函数
//四舍五入
select round(3.5);
--ceil
//向上取整
select ceil(3.1);
--floor
//向下取整
select floor(3.1);
3)字符串函数
4)日期函数
5)条件函数
6)集合函数
7)高级聚合函数
8)炸裂函数(UDTF)
UDTF,接收一行数据,输出一行或多行数据
---explode(将一个数组炸裂成多行)
select explode(array("老师","程序员","科学家")) as job;
----explode(将map类型集合炸裂成2列)
select explode(map("nic","老师","marry","程序员","nim","科学家"))as (name,job);
---posexplode(将array集合的元素及其下标分成两列显示出来)
select explode(array("老师","程序员","科学家")) as (pos,job);
---inline函数(
select inline(array
(named_struct("id", 1, "name", "zs"),
named_struct("id", 2, "name", "Is"),
named_struct("id", 3, "name", "ww"))
) as (id, name);
扩:Lateral View:通常与UDTF配合使用。Lateral View可以将UDTF应用到源表的每行数据,将每行数据转换为一行或多行,并将源表中每行的输出结果与该行连接起来,形成一个虚拟表。