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)]