📅  最后修改于: 2023-12-03 14:45:52.680000             🧑  作者: Mango
在 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 格式返回。