monotonically_increasing_id

Monoton olarak artan 64 bit tamsayılar oluşturur. Oluşturulan kimliğin monoton olarak artacağı ve benzersiz olacağı garanti edilir, ancak ardışık olmaz. Geçerli uygulama, bölüm kimliğini üst 31 bite, kayıt numarasını ise her bölüm içinde alt 33 bite yerleştirir. Veri çerçevesinin 1 milyardan az bölümü olduğu ve her bölümün 8 milyardan az kaydı olduğu varsayımı yer alır.

Sözdizimi

from pyspark.sql import functions as sf

sf.monotonically_increasing_id()

İade

pyspark.sql.Column: grubun son değeri.

Notes

sonucu bölüm kimliklerine bağlı olduğundan işlev belirlenimci değildir.

Örnek olarak, her birinde 3 kayıt bulunan iki bölüme sahip bir :classDataFrame düşünün. Bu ifade aşağıdaki kimlikleri döndürür: 0, 1, 2, 8589934592 (1L << 33), 8589934593, 8589934594.

Örnekler

Örnek 1: Monoton olarak artan kimlikler oluşturma

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