Freigeben über


Rollup

Erstellen Sie ein mehrdimensionales Rollup für den aktuellen DataFrame mithilfe der angegebenen Spalten, sodass sie aggregationsgeschützt werden können.

Syntax

rollup(*cols: "ColumnOrNameOrOrdinal")

Parameter

Parameter Typ Beschreibung
cols list, str, int oder Column Die Spalten, nach der ein Rollup ausgeführt werden soll. Jedes Element sollte ein Spaltenname (Zeichenfolge) oder ein Ausdruck (Column) oder ein Spalten-Ordinal (int, 1-basiert) oder eine Liste davon sein.

Rückkehr

GroupedData: Rollupdaten basierend auf den angegebenen Spalten.

Hinweise

Eine Spalten-Ordnungszahl beginnt von 1, die sich von der 0-basierten __getitem__unterscheidet.

Beispiele

df = spark.createDataFrame([("Alice", 2), ("Bob", 5)], schema=["name", "age"])

df.rollup("name").count().orderBy("name").show()
# +-----+-----+
# | name|count|
# +-----+-----+
# | NULL|    2|
# |Alice|    1|
# |  Bob|    1|
# +-----+-----+

df.rollup("name", df.age).count().orderBy("name", "age").show()
# +-----+----+-----+
# | name| age|count|
# +-----+----+-----+
# | NULL|NULL|    2|
# |Alice|NULL|    1|
# |Alice|   2|    1|
# |  Bob|NULL|    1|
# |  Bob|   5|    1|
# +-----+----+-----+