获取百分位数作为 SparkR 数据框中的列

阿努拉格H

我有一个如下所示Spark 数据框(虚拟数据),并希望使用SparkR添加百分位数作为一列

UserId Values
  U1     5
  U2     50
  U3     76
  .
  .
  .
  . 
  .
  U1000   8

例子:

 UserId Values   Percentile
      U1     5     0.011144
      U2     50    0.212245
      U3     76    0.811986 
      .
      .
      .
      . 
      .
      U1000   8    0.0134567
沙漠之舟

嗯,有一个函数,percent_rank,但它只对窗口分区进行操作;调整文档示例:

library(SparkR)
library(magrittr)
sparkR.version()
# [1] "2.2.0"    

df <- createDataFrame(mtcars)
ws <- orderBy(windowPartitionBy("am"), "hp")
out <- select(df, over(percent_rank(), ws), df$hp, df$am)
out <- out %>% withColumnRenamed(colnames(out)[1], 'percentile') # get rid of the ridiculously long column name 
head(out)
#   percentile  hp am
# 1 0.00000000  62  0
# 2 0.05555556  95  0
# 3 0.11111111  97  0
# 4 0.16666667 105  0
# 5 0.22222222 110  0
# 6 0.27777778 123  0

如果你不想要一个窗口分区而是一个全局百分位数,就像你的情况一样,我能想到的最简单的方法是首先添加一个虚拟常量列并以此为组,然后你可以删除它。所以,这是上面的例子,但这次没有分区am

df_new = df %>% withColumn("dummy", lit("N"))
ws <- orderBy(windowPartitionBy('dummy'), "hp")
out <- select(df_new, over(percent_rank(), ws), df_new$hp)
out <- out %>% withColumnRenamed(colnames(out)[1], 'percentile')

结果collect(out)

   percentile  hp
1  0.00000000  52
2  0.03225806  62
3  0.06451613  65
4  0.09677419  66
5  0.09677419  66
6  0.16129032  91
7  0.19354839  93
8  0.22580645  95
9  0.25806452  97
10 0.29032258 105
11 0.32258065 109
12 0.35483871 110
13 0.35483871 110
14 0.35483871 110
15 0.45161290 113
16 0.48387097 123
17 0.48387097 123
18 0.54838710 150
19 0.54838710 150
20 0.61290323 175
21 0.61290323 175
22 0.61290323 175
23 0.70967742 180
24 0.70967742 180
25 0.70967742 180
26 0.80645161 205
27 0.83870968 215
28 0.87096774 230
29 0.90322581 245
30 0.90322581 245
31 0.96774194 264
32 1.00000000 335

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

标绘数据2.5%百分位数97.5%百分位数

来自分类Dev

如何使用TSQL代码获取百分位数(%)列

来自分类Dev

如何从巨大的txt文件中获取分数列表的反向百分位数?

来自分类Dev

如何在python中的groupby列上获取百分位数?

来自分类Dev

在SQL中返回各种百分位数

来自分类Dev

计算Bash中的百分位数

来自分类Dev

计算R中的稳健百分位数

来自分类Dev

MariaDB中的百分位数

来自分类Dev

Excel中的百分位数

来自分类Dev

将数据框中的列转换为百分位数等级-Python 3.x

来自分类Dev

数据框中每一列和每一行的百分位数

来自分类Dev

Excel 数据透视表和百分位数/四分位数/中位数

来自分类Dev

熊猫-计算分组列的百分位数(分位数)

来自分类Dev

从基于百分位数的熊猫数据框中排除数据

来自分类Dev

将值从向量映射到数据框:计算百分位数

来自分类Dev

根据第90个百分位数内的值过滤出数据框

来自分类Dev

数据框:确定系列的百分位数值,从其他系列中获取相应的观察值

来自分类Dev

计算数据集列的百分位数

来自分类Dev

使用dplyr的数据帧中的频率加权百分位数

来自分类Dev

计算R中多列的百分位数

来自分类Dev

如何使用dplyr通过id过滤数据帧组中列的前10个百分位数

来自分类Dev

如何使用dplyr通过id过滤数据帧组中列的前10个百分位数

来自分类Dev

分布图中均值和百分位数的数据标签

来自分类Dev

通过过滤数据帧输出百分位数

来自分类Dev

如何读取cassandra nodetool直方图的百分位数和其他列?

来自分类Dev

python使用lambda从列表百分位数中对列表中的值进行排名

来自分类Dev

在SparkR中更改Spark数据框列的dataType

来自分类Dev

在R中查找特定输入的百分位数

来自分类Dev

使用百分位数删除Pandas DataFrame中的异常值

Related 相关文章

  1. 1

    标绘数据2.5%百分位数97.5%百分位数

  2. 2

    如何使用TSQL代码获取百分位数(%)列

  3. 3

    如何从巨大的txt文件中获取分数列表的反向百分位数?

  4. 4

    如何在python中的groupby列上获取百分位数?

  5. 5

    在SQL中返回各种百分位数

  6. 6

    计算Bash中的百分位数

  7. 7

    计算R中的稳健百分位数

  8. 8

    MariaDB中的百分位数

  9. 9

    Excel中的百分位数

  10. 10

    将数据框中的列转换为百分位数等级-Python 3.x

  11. 11

    数据框中每一列和每一行的百分位数

  12. 12

    Excel 数据透视表和百分位数/四分位数/中位数

  13. 13

    熊猫-计算分组列的百分位数(分位数)

  14. 14

    从基于百分位数的熊猫数据框中排除数据

  15. 15

    将值从向量映射到数据框:计算百分位数

  16. 16

    根据第90个百分位数内的值过滤出数据框

  17. 17

    数据框:确定系列的百分位数值,从其他系列中获取相应的观察值

  18. 18

    计算数据集列的百分位数

  19. 19

    使用dplyr的数据帧中的频率加权百分位数

  20. 20

    计算R中多列的百分位数

  21. 21

    如何使用dplyr通过id过滤数据帧组中列的前10个百分位数

  22. 22

    如何使用dplyr通过id过滤数据帧组中列的前10个百分位数

  23. 23

    分布图中均值和百分位数的数据标签

  24. 24

    通过过滤数据帧输出百分位数

  25. 25

    如何读取cassandra nodetool直方图的百分位数和其他列?

  26. 26

    python使用lambda从列表百分位数中对列表中的值进行排名

  27. 27

    在SparkR中更改Spark数据框列的dataType

  28. 28

    在R中查找特定输入的百分位数

  29. 29

    使用百分位数删除Pandas DataFrame中的异常值

热门标签

归档