当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。