Hive Sampling 抽样函数

文章目录

  • Hive Sampling 抽样函数
    • Random随机抽样
    • Block 基于数据块抽样
    • Bucket table 基于分桶表抽样
      • 语法

在HQL中,可以通过三种方式采样数据:随机采样,存储桶表采样和块采样。

Random随机抽样

  • 随机抽样使用rand()函数确保随机获取数据,LIMIT来限制抽取的数据个数。
  • 表数据多时抽样速度不快,但随机。
  • 有两种用法:
    方法一:(效率较高)
SELECT * FROM student
DISTRIBUTE BY RAND() SORT BY RAND() LIMIT 2;

方法二:

SELECT * FROM student
ORDER BY RAND() LIMIT 2;

Block 基于数据块抽样

  • 允许随机获取n行数据、百分比数据、指定大小的数据
  • 采样粒度是HDFS块大小
  • 优点是速度快,但不随机
  • 例:
  1. 获取1行数据:
SELECT * FROM student
TABLESAMPLE(1 ROWS);
  1. 百分比数据:
SELECT * FROM student
TABLESAMPLE(50 PERCENT);
  1. 指定大小的数据:
SELECT * FROM student
TABLESAMPLE(1k);

Bucket table 基于分桶表抽样

  • 一种特殊的采样方法,针对分桶表进行了优化
  • 抽样既随机,速度也很快。

语法

  • y必须是table总桶数的倍数或因子。hive根据y的大小,决定抽样的比例。(当y=2,有4个桶时,抽取4/2个桶的数据)
  • x表示从哪个桶开始抽取。
  • x的值必须小于y的值。
  • ON colname表示基于什么抽
    1. ON RAND():表示随机抽
    2. ON 分桶字段:表示基于分桶字段抽样,效率更高
TABLESAMPLE (BUCKET x OUT OF y [ON colname])
  • 例:
SELECT * FROM t_usa_covid19_bucket TABLESAMPLE(BUCKET 1 OUT OF 5 ON RAND());

Hive Sampling 抽样函数:Random随机抽样、Block 基于数据块抽样、Bucket table 基于分桶表抽样相关推荐

  1. hive详细笔记(四)-Hive内部表,外部表,分区表,分桶表详解(附带讲解视频)

    本节目录 内部表和外部表 静态分区表 动态分区表 分桶表 抽样查询 1 内部表和外部表 未被external修饰的是内部表(managed table),被external修饰的为外部表(extern ...

  2. Hive 的概念、应用场景、安装部署及使用、数据存储 、table(内部表)和external table(外部表)、partition(分区表)和bucket(分桶表)

    目录 1.Hive 的概念 2.Hive 的特点 3.Hive 和 RDBMS(关系型数据库) 的对比 4.Hive 和 HBase 的差别 5.Hive 架构 6.Hive安装与使用方法介绍 7.H ...

  3. 大数据之hive分区表和分桶表的区别

    (一)二者的区别 (1)分区和分桶都是细化数据管理,但是分区表是手动添加区分,由于hive是读模式,所以对添加进分区的数据不做模式校验.分桶表的数据时按住某些分桶字段进行hash散列 相乘的多个文件, ...

  4. Hive 分桶表原理及优化大表 join 实战

    一.什么是分桶表 分桶表,比普通表或者分区表有着更为细粒度的数据划分. 举个例子,每天产生的日志可以建立分区表,每个分区在 hdfs 上就是一个目录,这个目录下包含了当天的所有日志记录. 而分桶表,可 ...

  5. 一文说透hive中的分桶及抽样查询

    目录 0 引 言 1 分桶与分区的区别 2 分桶及抽样查询 3 小 结 0 引 言 本文围绕hive中分桶问题进行展开研究,分析了hive分桶与分区的区别,分桶的相关原理.分桶的优势,并对分桶的操作方 ...

  6. Hive _分桶及抽样查询

    分桶及抽样查询 1.分桶表数据存储 分区针对的是数据的存储路径:分桶针对的是数据文件. 分区提供一个隔离数据和优化查询的便利方式.不过,并非所有的数据集都可形成合理的分区,特别是之前所提到过的要确定合 ...

  7. hive 修改分桶数 分桶表_hive 学习之路(五)、Hive的分区表与分桶表

    Hive将表划分为分区(partition)表和分桶(bucket)表. 分区可以让数据的部分查询变得更快,也就是说,在加载数据的时候可以指定加载某一部分数据,并不是全量的数据. 分桶表通常是在原始数 ...

  8. Hive 分区表 分桶表

    本文目录 1.分区表 Ⅰ.分区表基本操作 1.创建分区表语句 2.分区数据准备 3.装载数据至指定分区 4.数据查询 Ⅰ.全表数据查询 Ⅱ.单个分区数据查询 Ⅲ.多个分区数据查询 5.增加分区 6.删 ...

  9. hive 修改分桶数 分桶表_Hive中的分桶

    对于每一个表(table)或者分区, Hive可以进一步组织成桶,也就是说桶是更为细粒度的数据范围划分.Hive也是针对某一列进行桶的组织.Hive采用对列值哈希,然后除以桶的个数求余的方式决定该条记 ...

最新文章

  1. 【PC工具】更新文件夹多文件群体比较工具WinMerge
  2. TEG《选择》乘风破浪 · 披荆斩棘
  3. Java开发和运行环境的搭建(详细教程)
  4. 【算法竞赛学习】气象海洋预测-Task5 模型建立之 SA-ConvLSTM
  5. es6 --- Proxy实例的get方法
  6. springboot mybatis-plus 配置 yml 、druid 配置 yml 、mybatis-plus 代码生成
  7. 7-138 打印沙漏 (20 分)
  8. 2022全球声望最佳的100个企业排行榜
  9. java jxl poi_「excle下载」java实现下载excle(jxl、poi 两种方式) - seo实验室
  10. php如何判断是否为json格式,php如何判断是否为json数据(格式)
  11. LoadRunner11破解方法
  12. 2020h黑苹果 y7000p_【黑苹果】联想Lenovo Legion Y7000 Y530系列笔记本,EFI文件下载
  13. python批量查询ip归属地_python3.2批量查询IP地址区域
  14. 笔记12(36-40)域名重定向,用户认证,nginx访问日志,日志切割
  15. 美团首席科学家的成长史
  16. Uber Go 语言编程规范:避免语义不明确的参数(Naked Parameters)
  17. MyEclipse黑色主题及MyEclipse 2016stable1.0破解教程
  18. c++ [Error] conflicting declaration的错误
  19. PointGrey相机的安装配置使用
  20. elecworks 电缆型号管理器

热门文章

  1. 时代发展科技进步支付行业在不断的创新
  2. 二维绘图引擎ZRender
  3. 蓝桥杯练习【STL训练】——The kth great number
  4. centos7 数图转换
  5. GMap.net地图打印、保存截图功能
  6. 数据结构 耿国华 第三版
  7. 常用Linux的ssh远程终端连接工具
  8. Maven resource 配置中include与exclude及其filter的使用
  9. 教师计算机培训心得体会2000,双师型教师计算机培训心得体会定稿(全文完整版)...
  10. 【01】软件项目管理结构图