Spark 通用函数详解

本节主要介绍 Spark SQL 中常用的数据转换函数和空值处理函数。

4.4 数据转换函数

  • To_char 函数: 用于将日期或数字类型转换为字符串类型。

sql

select to_char(current_date,'yyyy') from table_name;

select to_char(current_date,'yyyy-MM-dd') from table_name;

select to_char(salary,'L999,999') from employee;

select to_char(current_date,’D’) from table_name; // 返回星期

  • To_number 函数: 用于将字符串类型转换为数字类型。

sql

select to_number('13')+to_number('14') from table_name;

  • To_date 函数: 用于将字符串类型转换为日期类型。

sql

select to_date('20090210','yyyyMMdd') from table_name;

4.5 空值处理函数

  • NVL() 函数: 用于将 NULL 值替换为指定值。

sql

select nvl(commission,0) from employee;

  • NULLIF() 函数: 如果两个表达式相等,则返回 NULL,否则返回第一个表达式的值。

sql

-- 假设需要判断 salary 是否等于 bonus,相等则返回 NULL

select nullif(salary, bonus) from employee;

  • NVL2() 函数: 如果第一个表达式不为 NULL,则返回第二个表达式的值,否则返回第三个表达式的值。

sql

select empno, ename, sal, comm, nvl2(comm, sal+comm, sal) total from emp;