如何在 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 数据框应用条件

如何在pyspark中对一组列进行分桶?

如何在 pyspark 中对 spark 数据框中的多列求和?

如何在 pyspark 中对 spark 数据框中的多列求和?