sorting - 如何在pyspark中对列进行排序后从开始获取索引值?
问题描述
我想找到中位数,排序后我希望索引值再次从 1 开始我应该怎么做?这里salary是我想要排序的列,然后我添加了索引,所以我可以从一个开始索引列,因为对于中位数我们需要位置。但是排序后索引正在更新。我希望索引从头开始排序后再次。
df1=df1.orderBy(Salary)
df1 = df1.select('Salary').withColumn("id", monotonically_increasing_id())
解决方案
如果您的目标只是找到中位数,那么您可以使用summary
函数和过滤器50th percentile
:
df1.summary().filter(col("summary")=="50%").select(col("salary")).show()