admin管理员组文章数量:1794759
大数据之Hive:hive中的if函数
目录
- 1.语法
- 2.基本实例
- 在mysql中
- 在hive中
- 3.实战
- 3.1:数据准备
- 3.2:需求一:得到临时拉链表 dwd_dim-user_info_his_tmp, 2019-01-02
- 3.2:需求二:得到临时拉链表 dwd_dim-user_info_his_tmp, 2019-01-02
语法: if(boolean testCondition, T valueTrue, T valueFalseOrNull) 说明: 当条件testCondition为TRUE时,返回valueTrue;否则返回valueFalseOrNull
2.基本实例在mysql中,hive中基本一致
在mysql中 select source,if(source='猎聘',1,2) as flag from t_cal_dowell_resume 在hive中 select a,b,c,if(b='上帝',1,2) as bb from tmp.csv_t1 3.实战 3.1:数据准备表1:拉链表 dwd_dim_user_info_his ,2019-01-01
1 | 张三 | 2019-01-01 | 9999-99-99 |
2 | 李四 | 2019-01-01 | 9999-99-99 |
3 | 王五 | 2019-01-01 | 9999-99-99 |
表2:用户变化表 ods_user_info ,2019-01-02
1 | 张三 |
2 | 李小四 |
3 | 王五 |
4 | 赵六 |
5 | 田七 |
如下图
1 | 张三 | 2019-01-01 | 9999-99-99 |
2 | 李四 | 2019-01-01 | 2019-01-01 |
2 | 李小四 | 2019-01-02 | 9999-99-99 |
3 | 王五 | 2019-01-01 | 9999-99-99 |
SQL如下:
select uh.id, uh.name, uh.start_date, if(ui.id is not null and uh.end_date='9999-99-99', date_add(ui.dt,-1), uh.end_date) end_date from dwd_dim_user_info_his uh left join ( select * from ods_user_info where dt='2019-01-02' ) ui on uh.id=ui.id 3.2:需求二:得到临时拉链表 dwd_dim-user_info_his_tmp, 2019-01-02如下图
1 | 张三 | 2019-01-01 | 9999-99-99 |
2 | 李四 | 2019-01-01 | 2019-01-01 |
2 | 李小四 | 2019-01-02 | 9999-99-99 |
3 | 王五 | 2019-01-01 | 9999-99-99 |
4 | 赵六 | 2019-01-02 | 9999-99-99 |
5 | 田七 | 2019-01-02 | 9999-99-99 |
版权声明:本文标题:大数据之Hive:hive中的if函数 内容由林淑君副主任自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.xiehuijuan.com/baike/1686498347a74231.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论