當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


Python pyspark monotonically_increasing_id用法及代碼示例

本文簡要介紹 pyspark.sql.functions.monotonically_increasing_id 的用法。

用法:

pyspark.sql.functions.monotonically_increasing_id()

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

生成的ID保證單調遞增且唯一,但不連續。當前實現將分區 ID 放在高 31 位中,將每個分區內的記錄號放在低 33 位中。假設數據幀的分區少於10億,每個分區的記錄少於80億。

版本 1.6.0 中的新函數。

注意

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

例如,考慮一個有兩個分區的DataFrame,每個分區有 3 條記錄。此表達式將返回以下 ID:0、1、2、8589934592 (1L << 33)、8589934593、8589934594。

>>> df0 = sc.parallelize(range(2), 2).mapPartitions(lambda x: [(1,), (2,), (3,)]).toDF(['col1'])
>>> df0.select(monotonically_increasing_id().alias('id')).collect()
[Row(id=0), Row(id=1), Row(id=2), Row(id=8589934592), Row(id=8589934593), Row(id=8589934594)]

相關用法


注:本文由純淨天空篩選整理自spark.apache.org大神的英文原創作品 pyspark.sql.functions.monotonically_increasing_id。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。