怎么求中位数和分位数 概率密度函数_如何使用星火找到中位数和分位数

火花2.0+:

你可以用approxQuantile实现Greenwald-Khanna算法:

Python:df.approxQuantile("x", [0.5], 0.25)

斯卡拉:df.stat.approxQuantile("x", Array(0.5), 0.25)

其中最后一个参数是一个相对错误。次数越少,计算结果越准确,计算量越大。

星火2.2(火花-14352)它支持对多列的估计:df.approxQuantile(["x", "y", "z"], [0.5], 0.25)

和df.approxQuantile(Array("x", "y", "z"), Array(0.5), 0.25)

火花<2.0

Python

正如我在评论中提到的,这很可能不值得大惊小怪。如果数据相对较小,比如在您的情况下,那么只需在本地收集和计算中值:import numpy as np

np.random.seed(323)rdd = sc.parallelize(np.random.randint(1000000, size=700000))%time np.median(rdd.collect())np.array(rdd.collect()).nbytes

在我几年前的电脑上,它需要大约0.01秒的时间和大约5.5MB的内存。

如果数据要大得多,排序将是一个限制因素,因此,与其获得确切的值,不如在本地进行采样、收集和计算。但是,如果你真的想让一个人使用星火,这样的事情应该能起作用(如果我什么都没搞砸的话):

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值