当前位置: 首页 > news >正文

[hive SQL] 预约业务线

这两天有个数据需求,记录一下。 原始需求说明产品写得很乱不清晰确认了半天无语死了(开始骂人),直接列转换后的问题了

问题1:
现有一张办事预约服务记录表reservation_order,包含字段用户id、服务名称、服务所属部门、预约状态(1已成功 2已取消)、预约到场时间时间戳、预约申请创建时间时间戳等(简单示例如下)。现为了优化预约服务指引,产品打算基于用户预约记录找出各办事预约事项相关联的业务线。筛选在2023年1月至2023年3月预约未取消数量大于等于2次的用户,列出预约未取消数cnt、按照预约时间顺序列出预约的各部门服务及时间列表item_detail_list, 根据预约未取消数量降序排序筛选前300个用户的预约序列。

iduser_iditem_namedepartment_namereservation_statusreservation_timecreate_time
1123Aa116725888000001672586522444

简要分析

  1. 各用户预约服务数不同,采用collect_list以数组形式存储在一个字段中
  2. 部门和服务字段采用concat拼接,由于服务名称存在标点符号,采用其他的标点符号进行拼接,便于后续拆分使用
  3. 要让预约服务按照时间排序,即转化为collect_list内部元素排序问题。采用distribute by 和sort by对元素进行分布和排序。对user_id进行分散分布到各个reduce,在各 reduce里进行sort by排序。(参考具体说明:Hive:distribute by与group by,order by与sort by , cluster by的区别

代码如下:

select user_id, item_detail, item_list, cnt 
from
(select user_id, collect_list(concat(item,':',create_time)) as item_detail, collect_list(item) as item_list, count(1) as cnt 
from
(select user_id, concat(department_name,'#',item_name) as item,
from_unixtime(cast((reservation_time+28800000)/1000 as bigint), 'yyyy-MM-dd HH:mm:ss') as create_time
from reservation_order
where reservation_time >= 1672502400000
and reservation_time < 1680278400000
and reservation_status != '2'
distribute by user_id
sort by user_id, create_time)a
group by user_id)b
where cnt >= 2
order by cnt desc
limit 300;

遇到新问题及改进
在把这张表推送到mysql数据库的时候发生错误。由于collect_list得到的结果是array类型的,mysql没有对应的类型,平台试图对item_list字段进行cast as string操作但是报错失败,无法直接做cast。

  • 新问题:如何把array类型转化为string类型
  • 解决方法:采用concat_ws对array类型字段按元素拆分再用分隔符连接起来(由于item_name的值有包含逗号分号,就采用了其他的)

代码修改如下:

select user_id, concat_ws('|',item_detail) as item_detail, concat_ws('|',item_list) as item_list, cnt 
from
(select user_id, collect_list(concat(item,':',create_time)) as item_detail, collect_list(item) as item_list, count(1) as cnt 
from
(select user_id, concat(department_name,'#',item_name) as item,
from_unixtime(cast((reservation_time+28800000)/1000 as bigint), 'yyyy-MM-dd HH:mm:ss') as create_time
from reservation_order
where reservation_time >= 1672502400000
and reservation_time < 1680278400000
and reserve_status != '2'
distribute by user_id
sort by user_id, create_time)a
group by user_id)b
where cnt >= 2
order by cnt desc
limit 300;

问题2:
基于上一阶段得到的item_list,列出重合的业务线及重合次数。根据重合次数进行倒序排序,取前30条业务线。

简要分析:(还没尝试用hsql写,只想到用python的方法,由短到长排序后就用in或者把业务线先转化为数组,然后再去数组元素遍历比较 让俺再想想 先这样

相关文章:

[hive SQL] 预约业务线

这两天有个数据需求&#xff0c;记录一下。 原始需求说明产品写得很乱不清晰确认了半天无语死了&#xff08;开始骂人&#xff09;&#xff0c;直接列转换后的问题了 问题1&#xff1a; 现有一张办事预约服务记录表reservation_order&#xff0c;包含字段用户id、服务名称、服务…...

LNMP架构和论坛搭建以及一键部署

数据流向 一、Nginx服务安装 1、关闭防火墙 [rootking ~]# systemctl stop firewalld [rootking ~]# systemctl disable firewalld [rootking ~]# setenforce 0 2、将所需软件包拖入/opt目录下 3、安装依赖包 yum -y install pcre-devel zlib-devel gcc gcc-c make 4、创建运…...

RK3568平台开发系列讲解(设备驱动篇)V4L2程序实现流程

🚀返回专栏总目录 文章目录 一、V4L2 进行视频采集二、命令标识符三、V4L2程序实例3.1、打开设备3.2、查询设备属性3.3、显示所有支持的格式3.4、设置图像帧格式3.5、申请缓冲区3.6、将申请的缓冲帧从内核空间映射到用户空间3.7、将申请的缓冲帧放入队列,并启动数据流3.8、启…...

人工智能中的顶级会议

当搭建好了AI领域的知识架构&#xff0c;即具备了较好的数学、编程及专业领域知识后&#xff0c;如果想在AI领域追踪前沿研究&#xff0c;就不能再只看教材了。毕竟AI领域的发展一日千里&#xff0c;教材上的知识肯定不是最新的。此时&#xff0c;应该将关注的重点转向AI领域的…...

【Python OpenCV】第六天:图像的基础操作

文章目录 一、本期目标二、获取并修改像素值三、获取图像属性(1)img.shape(2)img.size(3)img.dtype四、图像 ROI五、拆分及合并图像通道六、为图像扩边(填充)一、本期目标 获取像素值并修改获取图像的属性(信息)图像的 ROI图像通道的拆分及合并几乎所有这些操作与 Nu…...

2022年陕西省职业院校技能大赛“网络搭建与应用”赛项竞赛试题

2022年陕西省职业院校技能大赛 “网络搭建与应用”赛项 竞赛试题 竞赛说明 一、竞赛内容发布 “网络搭建与应用”赛项竞赛共分三个部分,其中: 第一部分:网络搭建及安全部署项目(500分) 第二部分:服务器配置及应用项目(480分) 第三部分:职业规范与素养(20分) 二、竞赛…...

面经-01

面试java开发工程师 常用数据结构&#xff0c;区别及使用场景 以下是一些常用的数据结构&#xff0c;它们的区别以及适用场景&#xff1a; 数组 (Array)&#xff1a; 区别&#xff1a;数组是一种连续内存空间的数据结构&#xff0c;具有固定的大小&#xff0c;用于存储相同类型…...

c/c++:visual studio的代码快捷键,VS设置自定义默认代码,使用快捷键

c&#xff1a; 2022找工作是学历、能力和运气的超强结合体&#xff0c;遇到寒冬&#xff0c;大厂不招人&#xff0c;此时学会c的话&#xff0c; 我所知道的周边的会c的同学&#xff0c;可手握10多个offer&#xff0c;随心所欲&#xff0c;而找啥算法岗的&#xff0c;基本gg 提…...

mysql基本语法

-- 显示所有数据库 show databases;-- 创建数据库 CREATE DATABASE test;-- 切换数据库 use test;-- 显示数据库中的所有表 show tables;-- 创建数据表 CREATE TABLE pet (name VARCHAR(20),owner VARCHAR(20),species VARCHAR(20),sex CHAR(1),birth DATE,death DATE );-- 查看…...

出苗率相关论文

文章目录2021Automatic UAV-based counting of seedlings in sugar-beet field and extension to maize and strawberry(Computers and Electronics in Agriculture)2022Detection and Counting of Maize Leaves Based on Two-Stage Deep Learning with UAV-Based RGB Image&am…...

【Kubernetes】StatefulSet对象详解

文章目录简介1. StatefulSet对象的概述、作用及优点1.1 对比Deployment对象和StatefulSet对象1.2 以下是比较Deployment对象和StatefulSet对象的优缺点&#xff1a;2. StatefulSet对象的基础知识2.1 StatefulSet对象的定义2.1.1 下表为StatefulSet对象的定义及其属性&#xff1…...

选择排序与堆排序

全文目录引言选择排序思路实现堆排序思路实现总结引言 从这篇文章开始&#xff0c;将介绍几大排序算法&#xff1a;选择排序、堆排序、直接插入排序、希尔排序、冒泡排序、快速排序、归并排序以及计数排序。 在本篇文章中要介绍的是选择排序与堆排序&#xff0c;它们都属于选…...

AI绘图体验:想象力无限,创作无穷!(文生图)

基础模型&#xff1a;3D二次元 PIXEL ART &#xff08;1&#xff09;16-bit pixel art, outside of caf on rainy day, light coming from windows, cinematic still(电影剧照), hdr (2) 16-bit pixel art, island in the clouds, by studio ghibli&#xff08;吉卜力工作室…...

【图片分割】【深度学习】Windows10下SAM官方代码Pytorch实现

【图片分割】【深度学习】Windows10下SAM官方代码Pytorch实现 提示:最近开始在【图片分割】方面进行研究,记录相关知识点,分享学习中遇到的问题已经解决的方法。 文章目录【图片分割】【深度学习】Windows10下SAM官方代码Pytorch实现前言SAM模型运行环境安装打开cmd,执行下面的…...

“我用 ChatGPT 造了一个零日漏洞,成功逃脱了 69 家安全机构的检测!”

一周以前&#xff0c;图灵奖得主 Yoshua Bengio、伯克利计算机科学教授 Stuart Russell、特斯拉 CEO 埃隆马斯克、苹果联合创始人 Steve Wozniak 等在内的数千名 AI 学者、企业家联名发起一则公开信&#xff0c;建议全球 AI 实验室立即停止训练比 GPT-4 更强大的模型&#xff0…...

Compose (14/N) - 附带效应 EffectPI

一、概念 纯函数函数与外界交换数据只能通过形参和返回值进行&#xff0c;不会对外界环境产生影响。副作用函数内部与外界进行了交互&#xff0c;产生了其它结果&#xff08;如修改外部变量&#xff09;。组合函数是用来声明UI的&#xff0c;所以跟UI描述不相关的操作都是副作…...

云日记个人中心项目思路

验证昵称的唯一性 前台&#xff1a; 昵称文本框的失焦事件 blur 1. 获取昵称文本框的值 2. 判断值是否为空 如果为空&#xff0c;提示用户&#xff0c;禁用按钮&#xff0c;并return 3. 判断昵称是否做了修改…...

docker容器的相关环境及创建镜像1

一、容器管理工具介绍 LXC 2008 是第一套完整的容器管理解决方案 不需要任何补丁直接运行在linux内核之上管理容器。创建容器慢&#xff0c;不方便移植 Docker 是在LXC基础上发展起来的。拥有一套容器管理生态系统 生态系统包含︰容器镜像、注册表、RESTFUL API及命令行操作界…...

如何使用ChatGPT在1天内完成毕业论文

如何使用ChatGPT在1天内完成毕业论文 几天前&#xff0c;亲眼见证了到一位同学花了1天时间用ChatGPT完成了他的毕业论文&#xff0c;世道要变&#xff0c;要学会使用黑科技才能混的下去。废话到此结束&#xff0c;下面说明这么用AI生成自己的论文。 使用工具&#xff1a; 1. P…...

Debezium同步之实时数据采集必备工具

目录 简介 基础架构图片 Kafka Connect Debezium 特性 抽取原理 简介 RedHat(红帽公司) 开源的 Debezium 是一个将多种数据源实时变更数据捕获,形成数据流输出的开源工具。 它是一种 CDC(Change Data Capture)工具,工作原理类似大家所熟知的 Canal, DataBus, Maxwell…...

终极指南:如何用天津大学LaTeX论文模板彻底告别格式烦恼

终极指南&#xff1a;如何用天津大学LaTeX论文模板彻底告别格式烦恼 【免费下载链接】TJUThesisLatexTemplate LaTeX templates for TJU graduate thesis. Originally forked from code.google.com/p/tjuthesis 项目地址: https://gitcode.com/gh_mirrors/tj/TJUThesisLatexT…...

2026年玉米膨化机市场:谁是真正的行业领航者?

面对快速发展的休闲食品市场&#xff0c;如何在竞争激烈的玉米膨化机市场里抢占先机&#xff1f;随着消费者对健康食品需求的高涨&#xff0c;五谷杂粮膨化食品逐渐成为市场上的一股热潮。本篇将深度解析2026年玉米膨化机行业的趋势、选购要点&#xff0c;并对比测评几个行业知…...

手把手教你用Verilog在FPGA上实现Sobel边缘检测(附完整Matlab图片转TXT流程)

从图像到硬件加速&#xff1a;FPGA实现Sobel边缘检测全流程实战指南 在计算机视觉领域&#xff0c;边缘检测作为基础预处理步骤&#xff0c;直接影响着后续特征提取和目标识别的精度。传统基于CPU的算法实现往往难以满足实时性要求&#xff0c;而FPGA凭借其并行计算能力和低延迟…...

机器学习核心术语全解析:从评估指标到TensorFlow实战避坑指南

1. 项目概述与核心价值刚接触机器学习&#xff0c;尤其是像TensorFlow这样庞大框架的朋友&#xff0c;最头疼的莫过于满屏的英文术语。什么“Backpropagation”、“Softmax”、“Embedding”&#xff0c;每个词都认识&#xff0c;但组合在一起就让人云里雾里。更别提那些缩写&a…...

# 040、实战项目五:多 Agent 协作系统 —— 项目经理、开发者、测试者角色模拟

从一次凌晨三点的事故说起 去年做智能客服系统重构&#xff0c;我犯了个低级错误——让单个Agent既写代码又自测。结果上线当天&#xff0c;它把“用户退款”的SQL写成了DELETE FROM orders WHERE status‘refund’&#xff0c;还自信满满地标注“测试通过”。凌晨三点被运维电…...

Exception in thread “main“ java.lang.Error: Unresolved compilation problem:

Exception in thread "main" java.lang.Error: Unresolved compilation problem: 八股文面试&#xff0c;平时啊&#xff0c;开发遇到什么问题 没编译过去的提示信息...

别再只当Atlas是元数据仓库了!手把手教你用它的UI搞定数据分类与血缘追溯

别再只当Atlas是元数据仓库了&#xff01;手把手教你用它的UI搞定数据分类与血缘追溯 数据治理工具常被视为"高大上"的架构师专属玩具&#xff0c;但Apache Atlas的UI界面却藏着连一线工程师都能立刻上手的实用功能。上周排查一个报表异常时&#xff0c;我发现团队里…...

高性能自动化网页信息提取工具实战指南:大规模目标扫描与安全检测技术方案

高性能自动化网页信息提取工具实战指南&#xff1a;大规模目标扫描与安全检测技术方案 【免费下载链接】URLFinder 一款快速、全面、易用的页面信息提取工具&#xff0c;可快速发现和提取页面中的JS、URL和敏感信息。 项目地址: https://gitcode.com/gh_mirrors/ur/URLFinder…...

Windows 和 Ubuntu 安装 Hermes Agent 全攻略

文章目录【开场白】【先说重点&#xff1a;Hermes 和 OpenClaw 装机区别】【Windows 安装&#xff1a;5 步搞定】第 1 步&#xff1a;装 WSL2第 2 步&#xff1a;更新 Ubuntu 系统第 3 步&#xff1a;一键装 Hermes第 4 步&#xff1a;让环境变量生效第 5 步&#xff1a;初始化…...

端侧AI算力瓶颈与优化企业格局解析

一、引言&#xff1a;端侧AI的发展困境与研究核心1.1 端侧AI的产业价值与普及现状端侧AI作为边缘计算的核心落地形态&#xff0c;正深度渗透工业制造、智能终端、车载电子、安防监控等领域。据IDC数据&#xff0c;2025年全球端侧AI芯片市场规模突破180亿美元&#xff0c;工业端…...