我们知道在spark sql中最主要的就是编写sql语句来处理数据,在使用mysql的时候,我们可以看到有很多内置函数,在spark中也同样可以兼容sql03标准的sql,所以这里也有很多的内置函数,本篇我们主要介绍spark sql中内置的标量函数。
标量函数主要是是指每一行返回单个的值,顾名思义就是输入一个值,输出一个值。那么在spark sql中有哪些标量函数呢?
一、日期类函数
序号 | 函数 | 说明 | 示例 |
1 | to_date | 把时间按照格式进行转换为对应的年月日 | to_date('date_str,"MM-dd-yyyy") |
2 | to_timestamp | 把时间戳转换成时间,精确到年月日时分秒 | to_timestamp('ts_str,"MM-dd-yyyy mm:ss") |
3 | unix_timestamp | 返回自'1970-01-01 00:00:00'与指定时间的秒数差 | unix_timestamp('timestamp) |
4 | date_format | 把日期转换成字符串 | date_format('date1, "dd-MM-YYYY") |
5 | from_unixtime | 从整型里把时间整型进行破解成想要的时间格式,使用时可指定格式 | from_unixtime('unix_ts,"dd-MM-YYYY HH:mm:ss") |
6 | datediff | 两个时间相差多少天 | datediff('leave_date, 'join_date) |
7 | months_between | 两个时间相差多少月 | months_between('leave_date, 'join_date).as("months") |
8 | last_day('leave_date) | 一个月的最后一天 | last_day('leave_date) |
9 | date_add | 增加月份 | date_add('new_year, 14) |
10 | date_sub | 减少月份 | date_sub('new_year, 1) |
11 | next_day | 第二天 | next_day('new_year, "Mon") |
12 | year | 年 | year('date) |
13 | quarter | 季 | quarter('date) |
14 | month | 月 | month('date) |
15 | weekofyear | 周 | weekofyear('date) |
16 | dayofmonth | 日 | dayofmonth('date) |
17 | dayofyear | 天 | dayofyear('date) |
18 | hour | 消失 | hour('date) |
19 | minute | 分 | minute('date) |
20 | second | 秒 | second('date) |
二、字符串函数
序号 | 函数 | 说明 | 示例 |
1 | trim | 去掉左右的空格 | trim($"name") |
2 | ltrim | 去掉左边的空格 | ltrim($"name") |
3 | rtrim | 去掉右边的空格 | rtrim($"name") |
4 | lower | 转小写 | lower($"sentence") |
5 | upper | 转大写 | upper($"sentence") |
6 | initcap | 转首字母大写 | initcap($"sentence") |
7 | reverse | 反转 | reverse($"sentence") |
8 | regexp_extract | 按正则表达式提取 | regexp_extract($"comment", "[a-z]*o[xw]",0) |
三、数学计算函数
序号 | 函数 | 说明 | 示例 |
1 | round | 四舍五入,并保留N位小数 | round($"pie", 2) |
2 | ceil | 向上取整 | ceil($"v1") |
3 | floor | 向下取整 | floor($"v1") |
职场就是一场游戏,但游戏不是人生的全部。别太纠结眼前的得失,也别总被焦虑绑住。努力让自己积累更多底气吧,未来的你一定会感谢现在的自己。因为那个时候,你会发现,人生的主动权,终于掌握在自己手里了。
-- 展开阅读全文 --
还没有评论,来说两句吧...