Hive 使用积累

类型转化

数字和字符串

CAST(数字 as STRING)

时间相关

https://www.cppentry.com/bencandy.php?fid=117&id=201849
时间戳格式化 from_unixtime(message.create_time,‘yyyy-MM-dd’)
字符串转时间戳 unix_timestamp(‘20201021’,‘yyyyMMdd’) 【生成的为短时间戳 类似 1458382610】

字符串拼接

https://blog.csdn.net/muzieryueniao/article/details/77053307

批量处理 json

json_tuple 函数
json 字段 必须是标准的

select log.字段2, 新表名.json内部字段1,新表名.json内部字段2 as sendSum 
from log.表名 log 
lateral view json_tuple(log.json字段属性,'json内部字段1','json内部字段2') 新表名 
as json内部字段1,json内部字段2
where dt='20200324' and ctime='2020032418'

hive 处理 null 值

null 值替换

当属性不存在就取默认值

select nvl(字段名,0)from 表
Hive 中 NULL 值判断

注意 NULL 不等同于 空字符串,空字符串用 =’’ 或者 !=’’
NULL 有两种方式

is not NULL
--或者
!='\\N'

hive case when

case 待判断属性 when ‘a’ then ‘成功’ when ‘b’ then ‘失败’ else ‘未知’ end as ‘result’

select 
case 属性值 when 'a' then 值 when 'B' then 值 else 默认值  end as thirdPartyIds
from 表名

case when 结合复杂条件
*** 注意,条件判断情况下,case 直接跟 when

CASE
  WHEN (condition1) THEN result1
  WHEN (condition2) THEN result2
  WHEN (condition3) THEN result3 
  WHEN (condition4) THEN result4
  ELSE result_default 
END AS attribute_name

hive if else

if(条件,成立值,不成立值)

 select if (条件,条件成立值,条件不成立值) as sendSum from 表明

hive 截取字符串

得到 k SQL,第一位为1


SELECT substr('Spark SQL', 5) 
已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页