當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。