计算pyspark数据框列上的百分位数,忽略缺失值

时间:2019-07-10 21:14:30

标签: pyspark apache-spark-sql

我对pyspark非常陌生。 我有一个带有列IDBALANCE的pyspark数据框。 我正在尝试将balance列存储到100%(1-100%)的存储桶中,并计算每个存储桶中有多少ID。

我不能使用与RDD相关的任何东西,只能使用Pyspark语法。我已经尝试过以下代码

w = Window.orderBy(df.BALANCE)
test = df.withColumn('percentile_col',F.percent_rank().over(w))

我希望获得一个新列,该列可以自动计算BALANCE列中每个数据点的百分位数,而忽略缺失值。

1 个答案:

答案 0 :(得分:0)

尝试一下。 我们首先检查df.Balance列是否具有Null值。如果它具有Null值,则显示无。否则,将应用percent_rank()函数。

pyspark.sql中的

导入功能为F

w = Window.orderBy(df.BALANCE)

test = df.withColumn('percentile_col',when(df.BALANCE.isNull(),lit(None))。否则(F.percent_rank()。over(w)))