1.get_json_object()函数
2. nvl函数
3. COALESCE 函数
日期函数:
1 )date_format函数( 根据格式整理日期 )
2 )date_add函数(加减 日期 )
3 ) next_day 函数
4) last_day 函数( 求当月最后一天日期 )
1.get_json_object() 函数
常用在DWD层处理用户行为日志的场景
1)数据
[ {"name":" 大郎 ","sex":"男","age":"25"} ,{"name":" 西门庆 ","sex":"男","age":"47"}]
2)取出第一个json对象
hive (gmall)>
select get_json_object('[ {"name":" 大郎 ","sex":"男","age":"25"} ,{"name":" 西门庆 ","sex":"男","age":"47"}]', '$[0]' );
结果是: {"name":" 大郎 ","sex":"男","age":"25"}
注意:要用$符号
3)取出第一个json的age字段的值
hive (gmall)>
SELECT get_json_object( '[ {"name":" 大郎 ","sex":"男","age":"25"} ,{"name":" 西门庆 ","sex":"男","age":"47"}]' , " $[0].age " );
结果是:2 5
2. nvl函数
1)基本语法
NVL(表达式1,表达式2)
如果表达式1为空值,NVL返回值为表达式2的值,否则返回表达式1的值。
该函数的目的是把一个空值(null)转换成一个实际的值。其表达式的值可以是 数字型、字符型和日期型 。 但是表达式1和表达式2的数据类型 必须为同一个类型 。
2 )案例实操
hive (gmall)> select nvl(1,0);
1
hive (gmall)> select nvl(null,"hello");
hello
3.COALESCE 函数(返回参数列表中第一个非 NULL 值)
COALESCE(value1, value2, ..., valuen)
其中,
value1, value2, ..., valuen
表示多个可能的值,它们会按顺序被依次检查,直到找到第一个非 NULL 值为止,最终将该值返回。
7.1 . 2 日期处理函数
常用在DWS层处理数据的场景,日期的定位
1 )date_format函数( 根据格式整理日期 )
hive (gmall)> select date_format('2020-06-14','yyyy-MM');
2020-06
2 )date_add函数(加减 日期 )
hive (gmall)> select date_add('2020-06-14',-1);
2020-06-13
hive (gmall)> select date_add('2020-06-14',1);
2020-06-15
3 ) next_day 函数
(1)取 当前天的下 一个 周一
hive (gmall)> select next_day('2020-06-14','MO');
2020-06-15
说明 :星期一到星期日的英文 (Monday,Tuesday、Wednesday、Thursday、Friday、Saturday、Sunday)
注意:传第二个参数时,可以传英文全称,也可以传前两个字母或前三个字母。
(2)取当前周的周一(先定位到下周一,再减7)
hive (gmall)> select date_add(next_day('2020-06-14','MO'),-7) ;
2020-06-8
4 ) last_day 函数( 求当月最后一天日期 )
hive (gmall)> select last_day('2020-06-14');
2020-06- 3 0
7.1 . 3 复杂数据类型定义
1 )map结构数据定义
map < string,string>
2 ) array 结构数据定义
array<string>
3 ) struct 结构数据定义
struct<id:int,name:string,age:int>
4 ) struct 和array嵌套定义
array<struct< id:int,name:string,age:int >>