python dataframe 中位数_如何使用Python Dataframe API在Apache Spark中找到中位数?

下面是使用Python中的Dataframe API(Spark 1.6)的示例实现.

import pyspark.sql.functions as F

import numpy as np

from pyspark.sql.types import FloatType

假设我们在“工资”火花数据框中为客户提供月薪,例如:

月| customer_id |薪水

我们希望在整个月内找到每位客户的中位数工资

步骤1:编写用户定义的函数来计算中位数

def find_median(values_list):

try:

median = np.median(values_list) #get the median of values in a list in each row

return round(float(median),2)

except Exception:

return None #if there is anything wrong with the given values

median_finder = F.udf(find_median,FloatType())

第2步:通过将工资列收集到每行的工资列表中来汇总工资列:

salaries_list = salaries.groupBy("customer_id").agg(F.collect_list("salary").alias("salaries"))

步骤3:在薪水栏上调用median_finder udf,并将中值添加为新列

salaries_list = salaries_list.withColumn("median",median_finder("salaries"))

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值