HiveQL——不借助任何外表,产生连续数值

注:参考文章:

HiveSql一天一个小技巧:如何不借助其他任何外表,产生连续数值_hive生成连续数字-CSDN博客文章浏览阅读1.3k次。0 需求描述输出结果如下所示:12345...1001 问题分析方法一:起始值(start)+步长(diff)=结束值(end)select split(space(5), ' ')+----------------------+| _c0 |+----------------------+| ["","","","","",""] |+----------------------+select posexplode(spl_hive生成连续数字https://blog.csdn.net/godlovedaniel/article/details/124135352

0 需求描述

生成1-10的连续值

1 数据分析

方式一:posexplode炸裂函数,生成下角标pos, 再利用起始值start + pos(步长) = 结束值end

需要借助函数 split 和 space

split(分割字符串)
  • 语法:split(string str, string pat)
  • 返回值:array
  • 说明:按照pat分隔符分割 字符串str, 返回分割后的字符串数组
  • 举例:select split('adgncf','n') --> ["adg","cf"]
space:空格字符串函数
  • 语法: space(int n)
  • 说明:返回长度为5的空格字符串
  • 举例:select length(space(5)) ---> 5
sql 复制代码
select  split(space(5),'')

输出结果为:

sql 复制代码
select  posexplode(split(space(5),''))

输出结果为:

因此, 生成1-10的连续值的代码如下:

sql 复制代码
select
    id_start + tmp.pos as id
from (
         select
             1   as id_start,
             10 as id_end) t
         lateral view posexplode(split(space(id_end - id_start),'')) tmp as pos, val

方式二:利用row_number() over()排名函数生成id序列

sql 复制代码
select
    row_number() over () as id
from (select explode(split(space(9), ''))) t

2 小结

上述案例主要用到posexplode炸裂函数(带下角标pos)或row_number()函数,生成连续的数值。这种思路可以借鉴到 【用户间断连续登陆】类型的 题型中,手动填补间断的天数。

Hive炸裂函数文章见:

HiveSQL题------炸裂函数(explode/posexplode)_hive exolode-CSDN博客文章浏览阅读1.2k次,点赞28次,收藏13次。HiveSQL题------炸裂函数(explode/posexplode)_hive exolodehttps://blog.csdn.net/SHWAITME/article/details/135941286?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522170754345516800225566168%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=170754345516800225566168&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-1-135941286-null-null.nonecase&utm_term=%E7%82%B8%E8%A3%82%E5%87%BD%E6%95%B0&spm=1018.2226.3001.4450

相关推荐
渣渣盟27 分钟前
Spark核心:单跳转换率计算全解析
大数据·spark·scala·apache
edisao1 小时前
[特殊字符] 从助手到引擎:基于 GPT 的战略协作系统演示
大数据·人工智能·gpt
IT毕设梦工厂1 小时前
大数据毕业设计选题推荐-基于大数据的国家医用消耗选品采集数据可视化分析系统-Hadoop-Spark-数据可视化-BigData
大数据·hadoop·信息可视化·spark·毕业设计·数据可视化·bigdata
core5122 小时前
Hive实战(一)
数据仓库·hive·hadoop·架构·实战·配置·场景
华略创新2 小时前
利用数据分析提升管理决策水平
大数据·数据分析·crm·管理系统·软件
pingao1413782 小时前
PG-210-HI 山洪预警系统呼叫端:筑牢山区应急预警 “安全防线”
大数据·人工智能·科技
庄小焱3 小时前
大数据存储域——Kafka设计原理
大数据·kafka·消息中间件
Elastic 中国社区官方博客3 小时前
带地图的 RAG:多模态 + 地理空间 在 Elasticsearch 中
大数据·人工智能·elasticsearch·搜索引擎·ai·语言模型·全文检索
做萤石二次开发的哈哈4 小时前
萤石安全生产监管解决方案:构建企业安全智能化防护网
大数据·人工智能
万米商云4 小时前
碎片化采购是座金矿:数字化正重构电子元器件分销的价值链
大数据·人工智能·电子元器件·供应链采购