当前位置: 首页 > 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…...

linux之kylin系统nginx的安装

一、nginx的作用 1.可做高性能的web服务器 直接处理静态资源&#xff08;HTML/CSS/图片等&#xff09;&#xff0c;响应速度远超传统服务器类似apache支持高并发连接 2.反向代理服务器 隐藏后端服务器IP地址&#xff0c;提高安全性 3.负载均衡服务器 支持多种策略分发流量…...

理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端

&#x1f31f; 什么是 MCP&#xff1f; 模型控制协议 (MCP) 是一种创新的协议&#xff0c;旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议&#xff0c;它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...

Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility

Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility 1. 实验室环境1.1 实验室环境1.2 小测试 2. The Endor System2.1 部署应用2.2 检查现有策略 3. Cilium 策略实体3.1 创建 allow-all 网络策略3.2 在 Hubble CLI 中验证网络策略源3.3 …...

Neo4j 集群管理:原理、技术与最佳实践深度解析

Neo4j 的集群技术是其企业级高可用性、可扩展性和容错能力的核心。通过深入分析官方文档,本文将系统阐述其集群管理的核心原理、关键技术、实用技巧和行业最佳实践。 Neo4j 的 Causal Clustering 架构提供了一个强大而灵活的基石,用于构建高可用、可扩展且一致的图数据库服务…...

多种风格导航菜单 HTML 实现(附源码)

下面我将为您展示 6 种不同风格的导航菜单实现&#xff0c;每种都包含完整 HTML、CSS 和 JavaScript 代码。 1. 简约水平导航栏 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport&qu…...

使用 SymPy 进行向量和矩阵的高级操作

在科学计算和工程领域&#xff0c;向量和矩阵操作是解决问题的核心技能之一。Python 的 SymPy 库提供了强大的符号计算功能&#xff0c;能够高效地处理向量和矩阵的各种操作。本文将深入探讨如何使用 SymPy 进行向量和矩阵的创建、合并以及维度拓展等操作&#xff0c;并通过具体…...

Springboot社区养老保险系统小程序

一、前言 随着我国经济迅速发展&#xff0c;人们对手机的需求越来越大&#xff0c;各种手机软件也都在被广泛应用&#xff0c;但是对于手机进行数据信息管理&#xff0c;对于手机的各种软件也是备受用户的喜爱&#xff0c;社区养老保险系统小程序被用户普遍使用&#xff0c;为方…...

10-Oracle 23 ai Vector Search 概述和参数

一、Oracle AI Vector Search 概述 企业和个人都在尝试各种AI&#xff0c;使用客户端或是内部自己搭建集成大模型的终端&#xff0c;加速与大型语言模型&#xff08;LLM&#xff09;的结合&#xff0c;同时使用检索增强生成&#xff08;Retrieval Augmented Generation &#…...

AI病理诊断七剑下天山,医疗未来触手可及

一、病理诊断困局&#xff1a;刀尖上的医学艺术 1.1 金标准背后的隐痛 病理诊断被誉为"诊断的诊断"&#xff0c;医生需通过显微镜观察组织切片&#xff0c;在细胞迷宫中捕捉癌变信号。某省病理质控报告显示&#xff0c;基层医院误诊率达12%-15%&#xff0c;专家会诊…...

QT3D学习笔记——圆台、圆锥

类名作用Qt3DWindow3D渲染窗口容器QEntity场景中的实体&#xff08;对象或容器&#xff09;QCamera控制观察视角QPointLight点光源QConeMesh圆锥几何网格QTransform控制实体的位置/旋转/缩放QPhongMaterialPhong光照材质&#xff08;定义颜色、反光等&#xff09;QFirstPersonC…...