Condividi tramite


partitionBy (DataFrameWriter)

Partiziona l'output in base alle colonne specificate nel file system. Se specificato, l'output viene disposto nel file system simile allo schema di partizionamento di Hive.

Sintassi

partitionBy(*cols)

Parametri

Parametro Tipo Descrizione
*cols str o list Nomi delle colonne in base a cui partizionare.

Restituzioni

DataFrameWriter

Examples

Scrivere un dataframe in un file Parquet in modo partizionato e leggerlo di nuovo.

import tempfile, os
with tempfile.TemporaryDirectory(prefix="partitionBy") as d:
    spark.createDataFrame(
        [{"age": 100, "name": "Alice"}, {"age": 120, "name": "Ruifeng Zheng"}]
    ).write.partitionBy("name").mode("overwrite").format("parquet").save(d)

    spark.read.parquet(d).sort("age").show()
    # +---+-------------+
    # |age|         name|
    # +---+-------------+
    # |100| Alice|
    # |120|Ruifeng Zheng|
    # +---+-------------+

    # Read one partition as a DataFrame.
    spark.read.parquet(f"{d}{os.path.sep}name=Alice").show()
    # +---+
    # |age|
    # +---+
    # |100|
    # +---+