排序

返回按指定列排序的新 DataFrame。

Syntax

sort(*cols: Union[int, str, Column, List[Union[int, str, Column]]], **kwargs: Any)

参数

参数 类型 说明
cols int、str、list 或 Column(可选) 要排序依据的列名或列序号的列表。
ascending bool 或 list、optional、default True 布尔值或布尔值列表。 升序排序与降序。 为多个排序顺序指定列表。 如果指定了列表,则列表的长度必须等于该 cols列表的长度。

退货

DataFrame:已排序的数据帧。

备注

列序号从 1 开始,这不同于从 0 开始 __getitem__的 。 如果列序号为负数,则表示降序排序。

示例

from pyspark.sql import functions as sf
df = spark.createDataFrame([
    (2, "Alice"), (5, "Bob")], schema=["age", "name"])

df.sort(sf.asc("age")).show()
# +---+-----+
# |age| name|
# +---+-----+
# |  2|Alice|
# |  5|  Bob|
# +---+-----+

df.sort(df.age.desc()).show()
# +---+-----+
# |age| name|
# +---+-----+
# |  5|  Bob|
# |  2|Alice|
# +---+-----+

df.sort("age", ascending=False).show()
# +---+-----+
# |age| name|
# +---+-----+
# |  5|  Bob|
# |  2|Alice|
# +---+-----+

df = spark.createDataFrame([
    (2, "Alice"), (2, "Bob"), (5, "Bob")], schema=["age", "name"])
df.orderBy(sf.desc("age"), "name").show()
# +---+-----+
# |age| name|
# +---+-----+
# |  5|  Bob|
# |  2|Alice|
# |  2|  Bob|
# +---+-----+