首页 > 解决方案 > 如何在pyspark中对列进行排序后从开始获取索引值?

问题描述

我想找到中位数,排序后我希望索引值再次从 1 开始我应该怎么做?这里salary是我想要排序的列,然后我添加了索引,所以我可以从一个开始索引列,因为对于中位数我们需要位置。但是排序后索引正在更新。我希望索引从头开始排序后再次。

df1=df1.orderBy(Salary)

df1 = df1.select('Salary').withColumn("id", monotonically_increasing_id())

标签: sortingindexingpyspark

解决方案


如果您的目标只是找到中位数,那么您可以使用summary函数和过滤器50th percentile

df1.summary().filter(col("summary")=="50%").select(col("salary")).show()

推荐阅读