Compartir a través de


monotonically_increasing_id

Genera enteros de 64 bits aumentando de forma monotónica. Se garantiza que el Id. generado aumenta de forma monótona y es único, pero no consecutivo. La implementación actual coloca el identificador de partición en los 31 bits superiores y el número de registro dentro de cada partición en los 33 bits inferiores. La suposición es que la trama de datos tiene menos de 1000 millones de particiones y cada partición tiene menos de 8 mil millones de registros.

Syntax

from pyspark.sql import functions as sf

sf.monotonically_increasing_id()

Devoluciones

pyspark.sql.Column: último valor del grupo.

Notas

La función no es determinista porque su resultado depende de identificadores de partición.

Por ejemplo, considere una clase ::DataFrame con dos particiones, cada una con 3 registros. Esta expresión devolvería los siguientes identificadores: 0, 1, 2, 8589934592 (1L << 33), 8589934593, 8589934594.

Examples

Ejemplo 1: Generación de identificadores de aumento monotonicoico

from pyspark.sql import functions as sf
spark.range(0, 10, 1, 2).select(
    "*",
    sf.spark_partition_id(),
    sf.monotonically_increasing_id()).show()
+---+--------------------+-----------------------------+
| id|SPARK_PARTITION_ID()|monotonically_increasing_id()|
+---+--------------------+-----------------------------+
|  0|                   0|                            0|
|  1|                   0|                            1|
|  2|                   0|                            2|
|  3|                   0|                            3|
|  4|                   0|                            4|
|  5|                   1|                   8589934592|
|  6|                   1|                   8589934593|
|  7|                   1|                   8589934594|
|  8|                   1|                   8589934595|
|  9|                   1|                   8589934596|
+---+--------------------+-----------------------------+