Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Generuje monotonicznie rosnące 64-bitowe liczby całkowite. Wygenerowany identyfikator ma gwarancję monotonicznie rosnącego i unikatowego, ale nie kolejnego. Bieżąca implementacja umieszcza identyfikator partycji w górnej 31 bitach i liczbę rekordów w każdej partycji w dolnej 33 bitach. Zakłada się, że ramka danych ma mniej niż 1 miliard partycji, a każda partycja ma mniej niż 8 miliardów rekordów.
Składnia
from pyspark.sql import functions as sf
sf.monotonically_increasing_id()
Zwraca
pyspark.sql.Column: ostatnia wartość grupy.
Notatki
Funkcja nie jest deterministyczna, ponieważ jej wynik zależy od identyfikatorów partycji.
Rozważmy na przykład klasę ::DataFrame z dwiema partycjami, z których każda ma 3 rekordy. To wyrażenie zwróci następujące identyfikatory: 0, 1, 2, 8589934592 (1L << 33), 8589934593, 8589934594.
Przykłady
Przykład 1. Generowanie monotonicznie rosnących identyfikatorów
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|
+---+--------------------+-----------------------------+