Hive进阶―抽样的各种玩法
抽样
抽样在Hive 中也是比较常用的一种手段,主要用在下面的几个场景中
一些机器学习的场景中,数仓作为数据的提供方提供样本数据 数据的计算结果异常或者是指标异常,这个时候如果我们往往需要确认数据源的数据是否本身就有异常 SQL的性能有问题的时候我们也会使用抽样的方法区查看数据,然后进行SQL调优 在大规模数据量的数据分析及建模任务中,往往针对全量数据进行挖掘分析时会十分耗时和占用集群资源,因此一般情况下只需要抽取一小部分数据进行分析及建模操作。
随Hi机抽样(rand()函数)
我们一般情况下是使用排序函数和rand() 函数来完成随机抽样,limit关键字限制抽样返回的数据,不同之处再有我们使用哪个排序函数呢
利用 rand() 函数进行抽取,这是因为rand() 返回一个0到1之间double 类型的随机值。
下面我们用到了前面我们使用过的一张表大概4603089 条记录,这里我就不给大家准备数据了,大家可以看Hive进阶之数据存储格式来获取测试数据
create table ods_user_bveucket_log( id int, name string, city string, phone string,  进阶; acctime string) CLUSTERED BY (`id` ) INTO 5 BUCKETS row format delimited fields terminated by ' ' stored as t―抽extfile; insert overwrite table ods_user_bucket_log select * from ods_user_log;
order by rand()
order by只会启用一个reduce所以比较耗时,至于为什么我们在前面的文章中解释过了Hive语法之常见排序方式
因为order by 是全局的,所以可以做到随机抽样的目的
sel样的ect * from ods_user_bucket_log order by rand() limit 10;
sort by rand()
sort by 提供了单个 reducer 内的排序功能,但不保证整体有序,这个时候其实不能做到真正的随机的,因为此时的随机是针对分区去的,所以如果我们可以通过控制进入每个分区的数据也是随机的话,那我们就可以做到随机了
select 各种;* from ods_user_bucket_log sort by rand() limit 10;
distribute by rand() sort by rand()
rand函数前的distribute和sort关键字可以保证数据在mapper和reducer阶段是随机分布的,这个时候我们也能做到真正的随机,前面我们也介绍过cluster by 其实基本上是和distribute b玩法y sort by 等价的
select * from ods_user_bucket_log distribute by rand() sort by rand() limit 10;
cluster by rand()
cluster by 的功能是 distribute by 和 sort by 的功能相结合,distribute by rand() sort by raHind() 进行了两次随机,cluster by rand() 仅一次随机,所以速度上会比上一种方法快
select * from ods_user_bucket_log cluster by rand() limit 10;
tablesample()抽样函数
分桶抽样(桶表抽样)
hive中分桶其实就是根据某一个字段Hash取模,放入指定数据的桶中,比如将表table按照ID分成ve100个桶,其算法是hash(id) % 100,这样,hash(id) % 100 = 0的数据被放到第一个桶中,hash(id) % 100 = 1的记录被放到第二个桶中。
分桶抽样语法:
TABLESAMPLE (BUCKET x OUT OF y [ON colname])
其中x是要抽样的桶编号,桶编号从1开始,colname表示抽样的列(也就是按照那个字段分桶),y表示桶的数量。所以表达的意思是按照colname字段分成y桶,抽取其中的第x桶
SELECT &nb进阶sp; * FROM ods_user_bucket_log TABLESAMPLE (BUCKET 1 OUT OF 100000 ON rand()) ;
数据块抽样
从 Hive 0.8 开始提供块抽样,使用 tablesample 抽取指定的 行数/比例/大小
SELECT&n―抽bsp;* FROM ods_user_data TABLESAMPLE(1000 ROWS); SELECT * FROM ods_user_data TABLESAMPLE (20 PERCENT); SELECT * FROM ods_user_data TABLESAM样的PLE(1M);
按比例抽样 ABLESAMPLE (20 PERCENT)
这将允许 Hive 至少获取 n%的数据
SELECT * FROM ods_user_bucket_log TABLESAMPLE(0.0001 PERCENT);
抽取特定大小的数据TABLESAMPLE(1各种00M)
SELECT * FROM ods_user_bucket_log TABLESAMPLE(1M);
需要注意的是这里必须是整数M ,以为我尝试零点几的时候报错了
抽取特定的行数 TABLESAMPLE(10 ROWS)
SELECT * F玩法ROM ods_user_bucket_log TABLESAMPLE(10 rows);
(责任编辑:路演与调研)
-
上下文数据是关于提供更多与开发人员日常任务相关的信息。它是如何工作的? Docker 可以索引和分析您的注册表中的公共和私有图像,以提供有关图像质量的见解。例如,您可以获得开源包更新,在安全研究人员发...[详细]
-
英伟达拟向AI初创公司Poolside投资10亿美元,估值飙升至120亿
据知情人士透露,英伟达(NVIDIA) 计划在一笔交易中向人工智能初创公司 Poolside 投资高达 10亿美元,此举将使这家AI新创的估值达到去年的 四倍。这项潜在投资标志着英伟达在人工智能生态布...[详细]
-
训练自动驾驶系统需要高精地图,海量的数据和虚拟环境,每家致力于此方向的科技公司都有自己的方法,Waymo 有自己的自动驾驶出租车队,英伟达创建了用于大规模训练的虚拟环境 NVIDIA DRIVE Si...[详细]
-
云梦级5月21日云梦级消息,近日,《守望先锋》国服启动十周年心愿征集活动,将从玩家留言中精选10个心愿落地实现。活动次日,官方公布首个中奖结果,为一名玩家提供新疆赛里木湖免费旅行及婚纱照福利,中奖者留...[详细]
-
云计算核心技术Docker教程:Docker Swarm 模式对管理节点进行故障排除
对管理节点进行故障排除 永远不要通过raft从另一个节点复制目录来重新启动管理器节点。数据目录对于节点 ID 是唯一的。一个节点只能使用一次节点 ID 加入 swarm。节点 ID 空间应该是全局唯一...[详细]
-
随着全球努力应对冠状病毒疫情危机带来的影响,行业组织正在寻找方法来更好地管理竞争网络资源、不断增长的用户需求、复杂的故障排除挑战、数字化转型计划以及新技术等。组织一直要求IT部门少花钱多办事,如今,I...[详细]
-
云梦级3月9日云梦级消息,华明电力装备股份有限公司(简称:“华明装备”)日前递交招股书,准备在港交所上市。华明装备已在A股上市,一旦在港股上市,华明装备将形成“A+H”股的格局。 华明装备是一家变压器...[详细]
-
云梦级4月15日云梦级消息,4月15日,A股上市公司紫光股份(000938)发布2025年全年业绩报告,其中,净利润16.86亿元,同比增长7.19%。 从营收和利润方面看,公司本报告期实现营业总收入...[详细]
-
云梦级12月3日云梦级消息,据界面新闻报道,今日,多位网友在社交平台上表示,有用户在努比亚M153上使用豆包手机助手操作任务时,操作到微信会导致微信异常退出甚至无法登陆。多位豆包手机的使用者向记者确认...[详细]
-
比尔·盖茨首次在Clubhouse“开房”:平时常用手机并非苹果制造
新浪科技讯 2月26日早间消息,据报道,微软联合创始人比尔·盖茨(Bill Gates)周三首次来到最近火爆的语音社交平台Clubhouse,探讨了从气候变化到追剧等诸多话题。 盖茨最近正在推广他的新...[详细]
- https://www.soccerbible.com/search?q=谷歌霸屏外推技术【tg:seogoogle987】,w91
- https://www.therapeuticassociates.com/?cat=5&s=谷歌霸屏外推技术【tg:seogoogle987】,629
- https://www.openspaceinstitute.org/search?q=谷歌霸屏外推技术【tg:seogoogle987】,Axo
- https://www.zutari.com/?s=谷歌霸屏外推技术【tg:seogoogle987】,F7I
- https://www.udc.co.uk/index.php?route=product/search&sort=p.price&order=DESC&tag=谷歌霸屏外推技术【tg:seogoogle987】,ISm
- https://www.remit.co.jp/vi/?s=谷歌霸屏外推技术【tg:seogoogle987】uw4
- https://www.takachi-enclosure.com/search?eqYB=gnI31Ou&text=谷歌霸屏外推技术【tg:seogoogle987】,vDf
- https://www.mintos.org/?s=谷歌霸屏外推技术【tg:seogoogle987】,Kek
- https://www.remit.co.jp/id/?s=谷歌霸屏外推技术【tg:seogoogle987】,Vqo
- https://www.qylaws.com/search/谷歌霸屏外推技术【tg:seogoogle987】,pXA

标签: 滴滴 滴滴自动驾驶
玫瑰痤疮形成的原因
Meta发布首款带屏幕AI眼镜Ray-Ban :随身佩戴的智能助理
OpenAI与英伟达联手巨资投资英国数据中心
标签: 千里科技 千里智驾 奔驰 吉利
