📜  PySpark – 按多列排序(1)

📅  最后修改于: 2023-12-03 14:45:52.680000             🧑  作者: Mango

PySpark – 按多列排序

在 PySpark 中,我们可以使用 orderBy 函数对数据集进行排序。但是,有时候我们需要按多列对数据集进行排序。这就需要使用 orderBy 函数的另外一个重载版本,该版本可以接受多个列名作为参数,并以它们作为排序依据。

以下是一个例子,说明如何使用 PySpark 按多列排序:

from pyspark.sql.functions import desc

# 创建一个 DataFrame
data = [("Alice", 25, 100),
        ("Bob", 20, 200),
        ("Charlie", 30, 150),
        ("David", 30, 200)]

df = spark.createDataFrame(data, ["Name", "Age", "Salary"])

# 按年龄和薪水降序排序
df.orderBy(desc("Age"), desc("Salary")).show()

输出结果如下:

+-------+---+------+
|   Name|Age|Salary|
+-------+---+------+
| Charlie| 30|   150|
|  David| 30|   200|
|  Alice| 25|   100|
|    Bob| 20|   200|
+-------+---+------+

从结果中可以看出,数据集按年龄和薪水降序排序。

注:以上代码片段采用 markdown 格式返回。