pyspark.sql.functions.monotonically_increasing_id

pyspark.sql.functions。 monotonically_increasing_id ( )→pyspark.sql.column.Column

一個生成的列單調遞增64位整數。

生成的ID是保證是單調遞增的,獨特的,而不是連續的。當前的實現將分區ID上31位,並記錄在每個分區數量33位低。數據幀的假設是,不到10億個分區,每個分區都有不到80億條記錄。

筆記

函數是不確定的,因為它的結果取決於分區id。

作為一個例子,考慮一個DataFrame有兩個分區,每個3記錄。這個表達式將返回以下id: 0, 1, 2, 8589934592 (1 l < < 33), 8589934593, 8589934594。

> > >df0=sc並行化(範圍(2),2)mapPartitions(λx:((1),(2),(3,)))toDF([“col1”])> > >df0選擇(monotonically_increasing_id()別名(“id”))收集()(行(id = 0)、行(id = 1),行(id = 2),行(id = 8589934592),行(id = 8589934593),行(id = 8589934594)]