我一直在尝试检查一组用户的percentile_approx。这背后的意图是获得数据集中前25%的客户。所以,为了检查,我运行了以下HIVE查询。百分点百分比在配置单元返回零
select percentile_approx(amount, 0.75)
from sales
然而,从该查询返回的值是0.0
。我不确定问题是什么。当我通过少量记录的样本运行此查询时,结果就是预期的结果。
任何人都可以请摆脱这一点?
注 - 我试图找到包含超过3.3 M记录的数据集中的百分位数。
我一直在尝试检查一组用户的percentile_approx。这背后的意图是获得数据集中前25%的客户。所以,为了检查,我运行了以下HIVE查询。百分点百分比在配置单元返回零
select percentile_approx(amount, 0.75)
from sales
然而,从该查询返回的值是0.0
。我不确定问题是什么。当我通过少量记录的样本运行此查询时,结果就是预期的结果。
任何人都可以请摆脱这一点?
注 - 我试图找到包含超过3.3 M记录的数据集中的百分位数。
select percentile_approx(cast(amount as double), ARRAY(0.75))
from sales
尝试此方法
我们可以看到您所做的更改 - 但解释为什么您的更改可以解决OP的问题总是很有用。 – Tom 2017-05-10 07:44:21
通常percentile_approx()适用于整数类型的数据。请确保您已将此应用于具有整数的列。
也许先试试样?例如: 'select percentile_approx(amount,0.75) from sales tablesample(0.01 percent)' – Sean 2016-06-22 17:23:24