Freigeben über


partitionBy (DataFrameWriter)

Partitioniert die Ausgabe durch die angegebenen Spalten im Dateisystem. Wenn angegeben, wird die Ausgabe auf dem Dateisystem angeordnet, das dem Partitionierungsschema von Hive ähnelt.

Syntax

partitionBy(*cols)

Parameter

Parameter Typ Beschreibung
*cols str oder list Namen der Spalten, nach der partitioniert werden soll.

Rückkehr

DataFrameWriter

Beispiele

Schreiben Sie einen DataFrame in eine Parkettdatei auf partitionierte Weise, und lesen Sie es zurück.

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