Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Devuelve una nueva trama de datos particionada por las expresiones de partición especificadas. El dataframe resultante tiene particiones de intervalo.
Sintaxis
repartitionByRange(numPartitions: Union[int, "ColumnOrName"], *cols: "ColumnOrName")
Parámetros
| Parámetro | Tipo | Descripción |
|---|---|---|
numPartitions |
int | puede ser un valor int para especificar el número de particiones de destino o una columna. Si es una columna, se usará como la primera columna de partición. Si no se especifica, se usa el número predeterminado de particiones. |
cols |
str o columna | columnas de creación de particiones. |
Devoluciones
DataFrame: DataFrame repartitioned.
Notas
Se debe especificar al menos una expresión de partición por . Cuando no se especifica ningún criterio de ordenación explícito, se asume "primero valores NULL ascendentes".
Debido a motivos de rendimiento, este método usa el muestreo para calcular los intervalos. Por lo tanto, la salida puede no ser coherente, ya que el muestreo puede devolver valores diferentes. El tamaño de la muestra se puede controlar mediante la configuración spark.sql.execution.rangeExchange.sampleSizePerPartition.
Ejemplos
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|
# +---+-----+--------------------+