【硬刚Hive】Hive进阶—抽样的各种玩法

本文详细探讨了Hive中的抽样技术,包括随机抽样、order by rand()、sort by rand()、distribute by rand() sort by rand()、cluster by rand()、tablesampling函数、分桶抽样、数据块抽样、按比例抽样和分层抽样等。这些抽样方法在机器学习、数据异常检查、SQL性能优化和大规模数据分析中发挥关键作用。通过实例展示了如何实现按比例、特定大小和行数的抽样,并讨论了分层抽样的应用。
摘要由CSDN通过智能技术生成

抽样

抽样在Hive 中也是比较常用的一种手段,主要用在下面的几个场景中

  • 一些机器学习的场景中,数仓作为数据的提供方提供样本数据
  • 数据的计算结果异常或者是指标异常,这个时候如果我们往往需要确认数据源的数据是否本身就有异常
  • SQL的性能有问题的时候我们也会使用抽样的方法区查看数据,然后进行SQL调优
  • 在大规模数据量的数据分析及建模任务中,往往针对全量数据进行挖掘分析时会十分耗时和占用集群资源,因此一般情况下只需要抽取一小部分数据进行分析及建模操作。

随机抽样(rand()函数)

我们一般情况下是使用排序函数和rand() 函数来完成随机抽样,limit关键字限制抽样返回的数据,不同之处再有我们使用哪个排序函数呢

利用 rand() 函数进行抽取,这是因为rand() 返回一个0到1之间double 类型的随机值。

下面我们用到了前面我们使用过的一张表大概4603089 条记录,这里我就不给大家准备数据了,大家可以看Hive进阶之数据存储格式来获取测试数据

create table ods_user_bucket_log(
     id int,
     name string,
     city string,
     phone string,
     acctime string)
CLUSTERED BY (`id` ) INTO 5 BUCKETS 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王知无(import_bigdata)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值