Hive Percentile——分位数的计算

一、什么是分位数

分位数(Quantile)是一个更具体的概率分布的特殊点。分位数将我们的数据集、数值或概率分布分成若干份,每一份都包含了统计意义上的相同比例的数据。

比如,第25分位数(第一四分位数,Q1)就是将数据或概率分布分成4份,每一份都包含了整个数据或概率分布中25%的数据。

hive的percentile()函数能够方便地计算分位数。

SELECT percentile(age, 0.25) FROM user;

以上的函数将查询user表中年龄的第一四分位数。

二、如何使用hive percentile

hive percentile()函数常用的语法如下:

percentile(expr, pct)

expr是要处理的字段名或者是表达式,pct是0到1之间的百分比。

对于一个expr序列,pct指定一个值,该值在expr序列中有比它小的值的比例为pct。

三、hive percentile的计算方式

hive percentile的计算公式如下:

percentile(expr, pct)       ├──  如果expr全为NULL,则返回NULL
                            ├──  否则,所有expr值都将加载到内存中
                            ├──  如果pct小于0或大于1,则返回NULL
                            ├──  如果只有一个expr值,返回该值
                            ├──  对于pct小于1的,排除NULL后,将expr值升序排列
                            ├──  对于pct为1,排除NULL后,将expr值降序排列
                            ├──  计算rank=floor(pct*(count-1))
                            └──  对于pct小于1的,返回排在排好序的结果中第rank个不是NULL的值。对于pct为1,返回排好序的结果中倒数第rank个不是NULL的值

四、hive percentile的示例

示例1:计算乘客年龄分位数

计算Titanic数据集中乘客年龄的中位数、四分位数和十分位数:

-- CREATE TABLE passengers(age INT, name STRING);

-- Load data:
LOAD DATA LOCAL INPATH '/path/to/titanic.csv' INTO TABLE passengers;

-- 查看中位数
SELECT percentile(age, 0.5) FROM passengers;

-- 查看四分位数
SELECT percentile(age, 0.25), percentile(age, 0.5), percentile(age, 0.75) FROM passengers;

-- 查看十分位数
SELECT percentile(age, 0.1) AS P10, percentile(age, 0.2) AS P20, percentile(age, 0.3) AS P30, percentile(age, 0.4) AS P40, percentile(age, 0.5) AS P50, percentile(age, 0.6) AS P60, percentile(age, 0.7) AS P70, percentile(age, 0.8) AS P80, percentile(age, 0.9) AS P90 FROM passengers;

示例2:计算 sales 表的 95th百分位数 (即P95)

在 sales 表的 amount 字段中查找第95个百分数值的数值,即P95:

SELECT percentile(amount, 0.95) as P95 FROM sales;

示例3:计算sales表中字段price的75th百分位数 (即P75)

计算sales表中字段price的75th百分位数 (即P75)

SELECT percentile(price, 0.75) as P75 FROM sales;

五、总结

hive percentile函数可以非常方便地计算分位数,只需要指定想得到的分位数比例,就可以得到对应的数值。

在数据分析、数据可视化等领域,分位数是一个非常重要的指标。

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/244891.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-12 13:04
下一篇 2024-12-12 13:04

相关推荐

  • Python给定一个正整数,请计算二进制中为1的位数

    本文介绍如何使用Python计算一个正整数在二进制下有多少个1。 一、初识二进制 计算一个正整数在二进制下有多少个1,必须先了解二进制的概念。二进制是计算机中数字的一种表示方式,只…

    编程 2025-04-27
  • Python判断数字位数的方法

    本文将从多个方面介绍python判断数字位数的方法。 一、字符串长度法 可以将数字转换成字符串,然后使用len函数来求字符串的长度,从而判断数字的位数。 num = 123456 …

    编程 2025-04-27
  • Hive Beeline连接报错Connection Reset的解决方法

    对于Hive Beeline连接报错Connection Reset,可以从以下几个方面进行详细解答。 一、检查网络连接 首先需要检查机器与网络连接是否稳定,可以Ping一下要连接…

    编程 2025-04-27
  • 如何删除Hive的元数据统计信息

    本文将从以下几个方面详细阐述如何删除Hive的元数据统计信息。 一、元数据统计信息是什么? 元数据统计信息是相应数据表的统计信息,包括数据的行数、BLK(块)和文件大小等。 Hiv…

    编程 2025-04-27
  • Hive解析JSON详解

    一、JSON简介 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,具有结构清晰、易于读写、便于解析等特点。它基于JavaScript的一…

    编程 2025-04-25
  • Hive Trim的详解

    一、Trim基础知识 字符串的空白字符是指包含空格、制表符和换行符等字符。这些字符有可能需要从字符串的开头或结尾删除。Hive的Trim函数就是完成这种操作。 Trim函数是一种函…

    编程 2025-04-25
  • Hive Coalesce函数的全面解析

    一、Coalesce函数的基本介绍 在Hive中,Coalesce函数用于返回参数列表中的第一个非NULL值。Coalesce函数需要至少两个参数。如果所有参数都是NULL,函数则…

    编程 2025-04-25
  • Hive ABS详解

    一、概述 Hive ABS是基于Hadoop和Apache Hive构建的分布式运算框架,具有高性能和高可扩展性。ABS全称为Accelerated Big Data System…

    编程 2025-04-25
  • Hive排序详解

    一、排序基础 1、什么是排序 排序是将一组数据按照某一特定规则进行排列的过程,使得每个数据都按照一定的顺序存储和访问。 2、排序方式 2.1、内部排序 内部排序指全部数据都能够加载…

    编程 2025-04-25
  • Hive -f的完整指南

    一、什么是hive -f Hive是一个基于Hadoop的数据仓库工具,允许用户使用类SQL的语言HiveQL来处理存储在Hadoop集群中的数据。Hive -f是Hive命令行工…

    编程 2025-04-24

发表回复

登录后才能评论