前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Hive SQL 日常工作使用总结

Hive SQL 日常工作使用总结

原创
作者头像
努力在北京混出人样
发布2018-07-16 16:56:23
7130
发布2018-07-16 16:56:23
举报
文章被收录于专栏:祥子的故事祥子的故事

写写日常在使用Hive SQL做分析时经常使用的一些函数或者方法

like

  • like用于指定特定的字符串,或结合正则做模糊匹配
代码语言:txt
复制
select uid from dw.today where tunittype like '%wew.%'
  • rlike是hive中对like的扩展,将原先多个like才能完成的任务,使用一个rlike就可以搞定。
代码语言:txt
复制
select uid from dw.today where tunittype rlike '.*(you|me).*'

点号(.):表示和任意字符串匹配,星号(*):表示重复“左边的字符串”,(x|y)表示和x或者y匹配

  • 对like取反 一般,like的语法形式是: A LIKE B,取反的语法形式:NOT A LIKE B
代码语言:txt
复制
select uid from dw.today where not tunittype like '%wew.%'

时间区间

工作中,需要查询某个区间的用户量,这个时候就需要对时间做处理,以便快速搞定

  • 30分钟作为一个区间段SELECT DISTINCT FROM_UNIXTIME(60*30*CAST(UNIX_TIMESTAMP("2017-11-11 13:23:23")/(60*30) AS BIGINT), 'yyyy-MM-dd HH:mm:ss') FROM test_table这里便将时间转化为13:00:00,记录的是13:00:00至13:30:00这段时间的数据量
  • 10分钟作为一个区间段
代码语言:txt
复制
SELECT DISTINCT FROM_UNIXTIME(60*10*CAST(UNIX_TIMESTAMP("2017-11-11 13:23:23")/(60*10) AS BIGINT), 'yyyy-MM-dd HH:mm:ss')
FROM test_table

总结:一个小时60分钟,一分钟60秒,按照时间单位的秒来转化为相应的区间

排序

语法形式:

代码语言:txt
复制
row_number() over (partition by 字段 a order by 计算项 b desc ) rank

rank 排序的名称;partition by:类似 hive 的建表,分区的意思;order by :排序,默认是升序,加 desc 降序;这里按字段 a 分区,对计算项 b 进行降序排序

当前时间

代码语言:txt
复制
SELECT from_unixtime(unix_timestamp())

类型转换

cast() 函数将字符串转换为整数、双精度浮点数或执行反向转换

可参考这个博客:https://blog.csdn.net/xiaoshunzi111/article/details/54343291/

case .. when .. then句式

没错,在机器学习中给数据打标签过程最常用到的sql语句,主要用于处理单个列的查询结果

代码语言:txt
复制
create table if not exists dw.huodong_uid_label as 
select uid,
  CASE 
     WHEN action=0 THEN 0
     ELSE  1
  END AS label from zhangxiang.huodong_action_0_2

未完待续。。。。。。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • like
  • 时间区间
  • 排序
  • 当前时间
  • 类型转换
  • case .. when .. then句式
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档