partitionBy (DataFrameWriter)

Секционирует выходные данные по заданным столбцам в файловой системе. Если задано, выходные данные размещаются в файловой системе, аналогично схеме секционирования Hive.

Синтаксис

partitionBy(*cols)

Параметры

Параметр Тип Описание
*cols str или list Имена столбцов для секционирования по.

Возвраты

DataFrameWriter

Примеры

Напишите кадр данных в файл Parquet секционированным образом и считывайте его обратно.

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