repartitionByRange

지정된 분할 식으로 분할된 새 DataFrame을 반환합니다. 결과 DataFrame은 범위가 분할됩니다.

문법

repartitionByRange(numPartitions: Union[int, "ColumnOrName"], *cols: "ColumnOrName")

매개 변수

매개 변수 유형 설명
numPartitions int 는 파티션의 대상 번호 또는 열을 지정하는 int일 수 있습니다. 열인 경우 첫 번째 분할 열로 사용됩니다. 지정하지 않으면 기본 파티션 수가 사용됩니다.
cols str 또는 Column 열을 분할합니다.

Returns

DataFrame: 데이터 프레임을 다시 분할했습니다.

Notes

하나 이상의 파티션별 식을 지정해야 합니다. 명시적 정렬 순서를 지정하지 않으면 "먼저 null 오름차순"으로 간주됩니다.

성능상의 이유로 이 메서드는 샘플링을 사용하여 범위를 추정합니다. 따라서 샘플링은 다른 값을 반환할 수 있으므로 출력이 일관되지 않을 수 있습니다. 샘플 크기는 구성 spark.sql.execution.rangeExchange.sampleSizePerPartition을 통해 제어할 수 있습니다.

예제

from pyspark.sql import functions as sf
spark.createDataFrame(
    [(14, "Tom"), (23, "Alice"), (16, "Bob")], ["age", "name"]
).repartitionByRange(2, "age").select(
    "age", "name", sf.spark_partition_id()
).show()
# +---+-----+--------------------+
# |age| name|SPARK_PARTITION_ID()|
# +---+-----+--------------------+
# | 14|  Tom|                   0|
# | 16|  Bob|                   0|
# | 23|Alice|                   1|
# +---+-----+--------------------+