![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
hive
hive 字典
leap_ruo
这个作者很懒,什么都没留下…
展开
-
hive 按照某字段聚类在排序,添加编号
使用row_number()函数数据样例,给每行添加编号,排序编号原创 2023-05-25 22:10:05 · 649 阅读 · 0 评论 -
hive按字段转多行、列转行
使用explode函数,列转行原创 2023-05-25 22:02:21 · 325 阅读 · 0 评论 -
hive中常见的sql函数(持续更新中...)
背景sql中会常用到一些小函数,用于处理字符串、字段等,该文档用于记录一些可能用到的函数及场景函数及示例split将字符串,按照指定字符分割split(str, 'separator')sql中array 类型取下标元素-- 这里以上面介绍的split得到的array为例讲解】split(str, 'separator')[idx] -- idx 为下标,但是需要注意的是:不同的系统下标的其实位置不同,有的以0,有的以1......原创 2022-02-20 16:50:43 · 1043 阅读 · 0 评论 -
sql中 如何暂存临时表 —— with as的用法
在写sql时(这是主要指hive应用场景),比较复杂的sql会写的比较长,有时候是几百行的sql,可读性差且不易debug问题。所以,如果把中间结果保存到临时表里则逻辑相对清晰。样例如下:-- 临时表with alias_tbl1 as(select col1, col2from table_name1where condition in ()), -- 注意此处如果需要接着定义其他临时表,则需逗号隔开 alias_tbl2 as -- 连续定义,这里不需“with”(select c原创 2022-02-20 15:50:23 · 3860 阅读 · 0 评论 -
按照指定字段做聚合(partition by),随机(row_number)取指定数量的数据
举个????,有以下表内数据name |scorea |10a |11b |9b |10b |8a |3a |7c |4c原创 2021-11-07 18:03:29 · 444 阅读 · 0 评论 -
hive 按照某列值合并多行
按照指定字段的值做多行合并涉及到的功能函数concat_ws、collect_list(用于决定以哪种形式组织多个值)select id, concat_ws(',', collect_list(val)) as info from table_name group by id/* 效果如下---------------------------------------id |val---------------------------------------1原创 2021-11-07 11:05:06 · 1728 阅读 · 0 评论 -
hive中json格式字段解析及map使用
如果hive表中有扩展字段,那么扩展字段格式最常见的就是json格式,所以如何解析json字符串相对繁琐(虽然没啥技术????)用到的hive功能函数有:get_json_object、explode、split、regexp_replace、regexp_extract-- json字段样式:[{'a':1, 'b':2}, {'a':3, 'b':4}], 字段名称为json_strselect col_id, get_json_object(json_item, '$.a') as new原创 2021-11-07 10:55:11 · 4228 阅读 · 0 评论 -
hive依据指定条件设置别名 (case ... when )
使用case… when 语法来操作,when后的条件可以是某个值,也可以是表达式-- 条件是具体的值select case col_name1 when 1 then '别名1' when 2 then '别名2' else '别名3' end col_name1, col_name2from table_name-- 条件是表达式select case col_name1 when col_name1 <1000 then '别名1' when col_name原创 2021-11-07 10:37:30 · 2333 阅读 · 0 评论