在Spark sql的百分比函数中使用频率参数

时间:2019-05-27 09:09:33

标签: sql statistics pyspark-sql percentile

我正在尝试在spark-SQL中使用百分位功能。

数据:

col1
----
198
15.8
198
198
198
198
198
198
198
198
198

如果我使用下面的代码,则得到的百分位数不正确。

select percentile('col1', .05) from tblname
  

输出:   106.9

如果我使用下面的代码,则得到的百分位数不正确。

select percentile('col1', .05, 2) from tblname
  

输出:   24.91000000000001

但是,如果我使用下面的代码,则会得到预期的答复(但我不知道为什么和方式)

select percentile('col1', .05, 100) from tblname
  

输出:   15.8

有人可以帮助我理解最后一个论点如何改变事情吗?有文件吗?我签出了spark源代码docstring(因为我不知道Scala),但是没有运气。官方网站上也没有。

  

percentile(col,percent [,frequency])-以给定的百分比返回数字列col的确切百分位数值>。百分比值必须> 0.0到1.0之间。频率值应为正整数

Link

0 个答案:

没有答案