您的位置:宽带测速网 > 网络知识 > spark sortby在Spark SQL中如何使用

spark sortby在Spark SQL中如何使用

2025-06-16 18:56来源:互联网 [ ]

在 Spark SQL 中,您可以使用 orderBysort_by 函数对 DataFrame 进行排序

首先,我们需要创建一个 DataFrame。以下是一个简单的示例:

from pyspark.sql import SparkSessionfrom pyspark.sql.functions import colspark = SparkSession.builder \.appName("Spark SQL SortBy Example") \.getOrCreate()data = [("Alice", 34), ("Bob", 45), ("Cathy", 29), ("David", 31)]columns = ["Name", "Age"]df = spark.createDataFrame(data, columns)df.show()

这将创建一个如下所示的 DataFrame:

+-----+---+| Name|Age|+-----+---+|Alice| 34||Bob| 45||Cathy| 29||David| 31|+-----+---+

现在,我们将使用 orderBysort_by 函数对 DataFrame 进行排序。

    使用 orderBy 函数:
sorted_df = df.orderBy(col("Age").desc())sorted_df.show()

这将按年龄降序排列 DataFrame:

+-----+---+| Name|Age|+-----+---+|Bob| 45||David| 31||Alice| 34||Cathy| 29|+-----+---+
    使用 sort_by 函数:
from pyspark.sql.functions import descsorted_df = df.sort_by(desc("Age"))sorted_df.show()

这也将按年龄降序排列 DataFrame:

+-----+---+| Name|Age|+-----+---+|Bob| 45||David| 31||Alice| 34||Cathy| 29|+-----+---+

注意:orderBysort_by 函数在功能上相似,但它们之间存在一些差异。orderBy 是针对单个列进行排序,而 sort_by 可以针对多个列进行排序。此外,sort_by 允许您使用复杂的表达式进行排序,而 orderBy 只支持简单的列引用。