如何在 Pyspark 中对数据框进行排序 [重复]
Posted
技术标签:
【中文标题】如何在 Pyspark 中对数据框进行排序 [重复]【英文标题】:How to Sort a Dataframe in Pyspark [duplicate] 【发布时间】:2018-06-12 19:32:25 【问题描述】:我有一个数据框:
# +---+--------+---------+
# | id| rank | value |
# +---+--------+---------+
# | 1| A | 10 |
# | 2| B | 46 |
# | 3| D | 8 |
# | 4| C | 8 |
# +---+--------+---------+
我想按值排序,然后排名。这似乎应该很简单,但我没有看到它是如何在文档或 Pyspark 的 SO 中完成的,仅适用于 R 和 Scala。
这是排序后的样子,.show() 应该打印出来:
# +---+--------+---------+
# | id| rank | value |
# +---+--------+---------+
# | 4| C | 8 |
# | 3| D | 8 |
# | 1| A | 10 |
# | 2| B | 46 |
# +---+--------+---------+
【问题讨论】:
【参考方案1】:df.orderBy(["value", "rank"], ascending=[1, 1])
参考:http://spark.apache.org/docs/latest/api/python/pyspark.sql.html#pyspark.sql.DataFrame.orderBy
【讨论】:
你也可以使用ascending=[True, True](也许更易读)【参考方案2】:假设您的数据框存储在名为 df 的变量中
你会做df.orderBy('value').show()
让它排序
【讨论】:
这与 gasparms 建议的添加多个值一样有效。以上是关于如何在 Pyspark 中对数据框进行排序 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
如何在 PySpark 中的大型 Spark 数据框中对行的每个子集进行映射操作
如何在 PySpark 中对 groupby 数据框应用条件