当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R SparkR approxQuantile用法及代码示例


说明:

计算 SparkDataFrame 的数值列的近似分位数。该算法的结果具有以下确定性界限:如果 SparkDataFrame 有 N 个元素,并且如果我们以概率 p 请求分位数直到错误 err,那么该算法将从 SparkDataFrame 返回一个样本 x,因此 *exact* rank x 接近 (p * N)。更准确地说, floor((p - err) * N) <= rank(x) <= ceil((p + err) * N)。此方法实现了Greenwald-Khanna 算法的变体(具有一些速度优化)。该算法首次出现在 Greenwald 和 Khanna 的 [[https://doi.org/10.1145/375663.375670 分位数摘要的空间高效在线计算]] 中。请注意,在计算之前,数值列中的 NA 值将被忽略。对于仅包含 NA 值的列,将返回一个空列表。

用法:

## S4 method for signature 'SparkDataFrame,character,numeric,numeric'
approxQuantile(x, cols, probabilities, relativeError)

参数:

  • x 一个 SparkDataFrame。
  • cols 单个列名,或多个列的名称列表。
  • probabilities 分位数概率列表。每个数字必须属于 [0, 1]。例如 0 是最小值,0.5 是中值,1 是最大值。
  • relativeError 要达到的相对目标精度 (>= 0)。如果设置为零,则计算精确的分位数,这可能非常昂贵。请注意,接受大于 1 的值,但给出与 1 相同的结果。

返回:

给定概率的近似分位数。如果输入是单个列名,则输出是该列中的近似分位数列表;如果输入是多个列名,则输出应该是一个列表,其中的每个元素都是一个数值列表,表示对应列中的近似分位数。

注意:

自 2.0.0 起的大约分位数

例子:

df <- read.json("/path/to/file.json")
quantiles <- approxQuantile(df, "key", c(0.5, 0.8), 0.0)

相关用法


注:本文由纯净天空筛选整理自spark.apache.org大神的英文原创作品 Calculates the approximate quantiles of numerical columns of a SparkDataFrame。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。