大数据之Hive:hive中的if函数 admin 2023-05-29 10:24:02 篇首语:本文由小编为大家整理,主要介绍了大数据之Hive:hive中的if函数相关的知识,希望对你有一定的参考价值。 目录 1.语法2.基本实例在mysql中在hive中 3.实战3.1:数据准备3.2:需求一:得到临时拉链表 dwd_dim-user_info_his_tmp, 2019-01-023.2:需求二:得到临时拉链表 dwd_dim-user_info_his_tmp, 2019-01-02 1.语法 语法: 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 用户ID姓名开始时间结束时间1张三2019-01-019999-99-992李四2019-01-019999-99-993王五2019-01-019999-99-99表2:用户变化表 ods_user_info ,2019-01-02 用户ID姓名1张三2李小四3王五4赵六5田七3.2:需求一:得到临时拉链表 dwd_dim-user_info_his_tmp, 2019-01-02 如下图 用户ID姓名开始时间结束时间1张三2019-01-019999-99-992李四2019-01-012019-01-012李小四2019-01-029999-99-993王五2019-01-019999-99-99SQL如下: 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 如下图 用户ID姓名开始时间结束时间1张三2019-01-019999-99-992李四2019-01-012019-01-012李小四2019-01-029999-99-993王五2019-01-019999-99-994赵六2019-01-029999-99-995田七2019-01-029999-99-99select * from ( select id, name, "2021-03-21" start_date, "9999-99-99" end_date from ods_user_info where dt="2019-01-02") union all 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)his order by his.id, start_date; 以上是关于大数据之Hive:hive中的if函数的主要内容,如果未能解决你的问题,请参考以下文章 eNSP模拟实验-MSTP多实例STP Mybatis配置文件之useGeneratedKeys和keyProperty搭配用法 您可能还会对下面的文章感兴趣: 相关文章 浏览器打不开网址提示“ERR_CONNECTION_TIMED_OUT”错误代码的解决方法 如何安装ocx控件 VMware的虚拟机为啥ip地址老是自动变化 vbyone和EDP区别 linux/debian到底怎么重启和关机 苹果平板键盘被弄到上方去了,如何调回正常? 机器学习常用距离度量 如何查看kindle型号