代码之家  ›  专栏  ›  技术社区  ›  Geet

使用火花分组百分位数

  •  1
  • Geet  · 技术社区  · 7 年前

    我想用sparkr计算分组百分位数。我试过这个

    library(SparkR)
    mtcars_spark %>% 
          SparkR::groupBy("cyl") %>%
          SparkR::summarize(p75 = approxQuantile("mpg", 0.75, 0.01),
                            p90 = approxQuantile("mpg", 0.90, 0.01),
                            p99 = approxQuantile("mpg", 0.99, 0.01))
    

    …但是,出现了这个错误:

    unable to find an inherited method for function ‘approxQuantile’ for signature ‘"GroupedData", "character", "numeric", "numeric"’
    

    如何使用sparkr获取分组的百分位数,以便所需的输出与以下代码相同:

    library(dplyr)
    mtcars %>% 
      group_by(cyl) %>% 
      summarise(p75 = quantile(mpg, 0.75),
                p90 = quantile(mpg, 0.90),
                p99 = quantile(mpg, 0.99))
    
    1 回复  |  直到 7 年前
        1
  •  1
  •   user6910411    7 年前

    approxQuantile Datasets *GroupedDataset percentile

    mtcars_spark %>% 
        SparkR::groupBy("cyl") %>%
        SparkR::summarize(p75 = expr("percentile(mpg, 0.75)"),
                          p90 = expr("percentile(mpg, 0.90)"),
                          p99 = expr("percentile(mpg, 0.99)"))
    

    gapply