在 HiveQL 中将变量设置为最大值

Posted

技术标签:

【中文标题】在 HiveQL 中将变量设置为最大值【英文标题】:Set variable to maximum value in HiveQL 【发布时间】:2012-11-14 04:25:30 【问题描述】:

我想从表 totalSpeeds 中的数据列(速度)中获取第一个四分位数的值。

为此,我尝试创建一个变量(阈值),然后选择小于或等于它的值。

SET threshold = (SELECT 0.25*MAX(speed) FROM totalSpeeds);
SELECT speed FROM totalSpeeds WHERE speed <= $hiveconf:threshold;

这失败并返回了一个解析错误。有没有更有效的方法来获得前四分位数速度的上限?或者有没有办法调整上述命令以返回第一四分位数的速度?

提前致谢,

安妮塔

【问题讨论】:

【参考方案1】:

hive 中有一个内置的 UDF 用于计算百分位数。使用

从 totalSpeeds 中选择百分位数(速度,.25);

UDF 解释:

返回组中列的精确 pth 百分位数。 p 必须介于 0 和 1 之间

同样,我们也可以使用 percentile(speed, array(p1, p2)) 提取多个百分位数

【讨论】:

以上是关于在 HiveQL 中将变量设置为最大值的主要内容,如果未能解决你的问题,请参考以下文章

在 pandas 中将行中的最大值设置为 1,其余设置为 0

如何在php中将最小值和最大值设置为小数点后2位[重复]

如何将滑块连接到 MFC 中的变量

Hive QL 检索最大值

猫鼬中的最小和最大数量验证

使用 css 变量(没有 SASS/LESS)设置媒体查询的最小/最大宽度?