Compartilhar via


Rollup

Crie um rollup multidimensional para o DataFrame atual usando as colunas especificadas, permitindo agregação nelas.

Sintaxe

rollup(*cols: "ColumnOrNameOrOrdinal")

Parâmetros

Parâmetro Tipo Descrição
cols list, str, int ou Column As colunas a serem acumuladas. Cada elemento deve ser um nome de coluna (cadeia de caracteres) ou uma expressão (Coluna) ou uma coluna ordinal (int, com base em 1) ou uma lista deles.

Devoluções

GroupedData: dados acumulados com base nas colunas especificadas.

Observações

Um ordinal de coluna começa a partir de 1, que é diferente do baseado em __getitem__0.

Exemplos

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|
# +-----+----+-----+