Hive - Select 使用 in 限制范围

目录

一.引言

二.Select Uid Info

1.少量 Uid

2.大量 Uid

◆ 建表

◆ 本地 Load

◆ HDFS Load

◆ Select In

三.总结


一.引言

工业场景下 Hive 表通常使用 uid 作为用户维度构建和更新 Hive 表,当我们需要查询指定批次用户信息时,可以使用 in 限定范围,下面实践不同 uid 数量下 Select 的示例。

二.Select Uid Info

1.少量 Uid

使用 'IN' 可以指定一个范围,让查询返回指定列表中所对应的元素,假设我们有一个 user 表,里面有一列 uid,我们需要查询多个 uid 的信息,可以使用下述语句查询:

hive -e "
SELECT * FROM users WHERE uid IN (uid1, uid2, uid3, ..., uidN);
"

查询后会将列表中所有 uid 符合的 row 都拿到。

2.大量 Uid

上面的方法很简洁,我们只需要将 uid 逗号分割放到脚本即可,但是还有一种复杂的情况,就是我们的 uid 非常多,例如上万个用户信息,这时候如果还使用上面 in (uid1, uid2 ...) 的形式脚本的可读性会很差,而且不易维护,所以我们通过建表的形式存储多个 uid,通过 in 与新表交互,实现优雅的查询代码。

◆ 建表

hive -e "create Table tmp_uid_list (uid INT);"

◆ 本地 Load

hive -e "LOAD DATA LOCAL INPATH '$local_path' INTO TABLE tmp_uid_list"

◆ HDFS Load

hive -e "LOAD DATA INPATH '$hdfs_path' INTO TABLE tmp_uid_list;

◆ Select In

hive -e "
select * from users
where dt between '20231225' and '20231231'
and uid in (select uid from tmp_uid_list);
"

通过建表我们将大量 uid 存储至 Hive 的 tmp 临时表中,如果 uid 数量不多可以放置在本地,如果 uid 数量很大可以放置在 HDFS 文件系统,随后 LOAD 进 Hive 表再配合 Select 操作即可。

三.总结

这里博主是 7.2 w 个 uid,所以直接放在本地 File Local Load 了,只用 3 行 SQL 就能解决,如果换成手写 7w 个 Uid,脑壳疼。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/293162.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Spark内核解析-Spark shuffle6(六)

1、Spark Shuffle过程 1.1MapReduce的Shuffle过程介绍 Shuffle的本义是洗牌、混洗,把一组有一定规则的数据尽量转换成一组无规则的数据,越随机越好。MapReduce中的Shuffle更像是洗牌的逆过程,把一组无规则的数据尽量转换成一组具有一定规则…

极速 JavaScript 打包器:esbuild

文章目录 引言什么是esbuild?esbuild的特点esbuild如何实现如此出色的性能?esbuild缺点基本配置入口文件输出文件模块格式targetplatformexternalbanner和footer 高级配置插件系统自定义插件压缩代码调试代码 结论😶 写在结尾 引言 esbuild是…

月薪15000在春晚分会场西安,够花吗?

千寻的结论: 如果有房无贷,另一半也有工作收入,父母身体健康且均有不错的退休金, 满足这些条件的话,在西安月入1.5W是相当不错。

苹果电脑菜单栏应用管理软件Bartender 4 mac软件特点

Bartender mac是一款可以帮助用户更好地管理和组织菜单栏图标的 macOS 软件。它允许用户隐藏和重新排列菜单栏图标,从而减少混乱和杂乱。 Bartender mac软件特点 菜单栏图标隐藏:Bartender 允许用户隐藏菜单栏图标,只在需要时显示。这样可以…

Flutter 图片和资源的高效使用指南

Flutter 应用程序包含代码和 assets(也为资源)。资源是被打包到应用程序安装包中,可以在运行时访问的一种文件。常见的资源类型包括静态数据(例如 JSON 文件),配置文件,图标和图片(J…

14:00面试,14:08就出来了,问的问题过于变态了。。。

从小厂出来,没想到在另一家公司又寄了。 到这家公司开始上班,加班是每天必不可少的,看在钱给的比较多的份上,就不太计较了。没想到10月一纸通知,所有人不准加班,加班费不仅没有了,薪资还要降40…

springboot第47集:【思维导图】面向对象,关键字,标识符,变量,数组的使用...

关键字:class,public,static,void等,特点是全部关键字都是小写字母。 image.png image.png 凡是自己起的名字可以叫标识符 image.png image.png image.png image.png 整数类型的使用 image.png image.png image.png 浮点类型 image.png image.png 字符类…

回归预测 | Matlab实现基于GA-Elman遗传算法优化神经网络多输入单输出回归预测

回归预测 | Matlab实现基于GA-Elman遗传算法优化神经网络多输入单输出回归预测 目录 回归预测 | Matlab实现基于GA-Elman遗传算法优化神经网络多输入单输出回归预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实现基于GA-Elman遗传算法优化神经网络多输入单输…

Java重修第一天—学习数组

1. 认识数组 建议1.5倍速学习,并且关闭弹幕。 数组的定义:数组是一个容器,用来存储一批同种类型的数据。 下述图:是生成数字数组和字符串数组。 为什么有了变量还需要定义数组呢?为了解决在某些场景下,变…

安装extiverse/mercury时报错

问题描述 作者在安装 Flarum 的插件 extiverse/mercury 时报错,内容如下图所示 解决方案 ⚠警告:请备份所有数据再进行接下来的操作,此操作可能会导致网站不可用! 报错原因:主要问题是在安装过程中解决依赖关系。具…

Day24 回溯算法part01 理论基础 77.组合

回溯算法part01 理论基础 77.组合 理论基础(转载自卡码网) 什么是回溯法 回溯法也可以叫做回溯搜索法,它是一种搜索的方式。 在二叉树系列中,我们已经不止一次,提到了回溯,例如二叉树:以为使用了递归,其…

nVisual如何实现数据中心资产管理

背景 随着信息技术的迅速发展,数据中心已经成为了企业信息化建设的重要基础设施之一。数据中心不仅承载着大量的企业数据和业务应用,而且也需要大量的资产投入来支持其运营和发展。 因此,数据中心资产管理的重要性也日益凸显,数…

SparkStreaming基础解析(四)

1、 Spark Streaming概述 1.1 Spark Streaming是什么 Spark Streaming用于流式数据的处理。Spark Streaming支持的数据输入源很多,例如:Kafka、Flume、Twitter、ZeroMQ和简单的TCP套接字等等。数据输入后可以用Spark的高度抽象原语如:map、…

OpenCV-15位运算

OpenCV中的逻辑运算就是对应位置的元素进行与、或、非和异或。 Opencv与Python不同的是:OpenCV中0的非反过来是255,255反过来是0。 但是Python中255非为-256。 一、非运算 使用API---cv.bitwise_not(str) 示例代码如下: import cv2 imp…

Jenkins集成部署java项目

文章目录 Jenkins简介安装 Jenkins简介 Jenkins能实时监控集成中存在的错误,提供详细的日志文件和提醒功能,还能用图表的形式形象的展示项目构建的趋势和稳定性。 官网 安装 在官网下载windows版本的Jenkins 但是我点击这里浏览器没有反应&#xff0…

系列十一、(一)Sentinel简介

一、Sentinel简介 1.1、官网 【英文文档】 https://github.com/alibaba/Sentinel/wiki【中文文档】 https://github.com/alibaba/Sentinel/wiki/%E4%B8%BB%E9%A1%B5 1.2、概述 1.3、功能

JAVA基本语法(关键字,保留字)和快捷键

java基本语法: 1 大小写敏感 2 类名首字母大写 3 变量名、方法名首字母小写,遵循驼峰命名法 4 源文件名必须和类相同 命名法: 驼峰命名法(推荐):由若干单词组成,每个单词首字母大写&#…

[足式机器人]Part2 Dr. CAN学习笔记-动态系统建模与分析 Ch02-3流体系统建模

本文仅供学习使用 本文参考: B站:DR_CAN Dr. CAN学习笔记-动态系统建模与分析 Ch02-12课程介绍电路系统建模、基尔霍夫定律 流量 flow rate q q q m 3 / s m^3/s m3/s 体积 volume V V V m 3 m^3 m3 高度 heigh h h h m m m 压强 pressure p p p …

在线的omniplan甘特图制作工具

在线的omniplan甘特图制作工具 快捷键 按住空格键 可以拖动画布Tab 将选中的任务右缩进(设置为子任务)Shift Tab 将选中的任务提升一级(取消子任务)按住Shift可以选择多个任务按住Ctrl 或者 Mac 的 command 可以选择多个任务按…

threejs在透视相机模式下,绘制像素大小固定的元素

要求:在透视相机模式下绘制一个图标,图标大小始终为32*32px。图标如下: 实现思路: 使用THREE.Sprite。因为 SpriteMaterial 支持配置 sizeAttenuation 使Sprite大小不随相机的深度而衰减。所以我们只要保证sprite的初始的大小合适…