【发布时间】:2020-05-17 22:06:12
【问题描述】:
我有一个 pyspark 数据框。我想添加一个包含行号的列。
这就是我正在做的事情
stop_df = stop_df.withColumn("stop_id", monotonically_increasing_id())
如果我检查stop_id 的最大值,我得到
stop_df.agg(max("stop_id")).show()
+--------------+
| max(stop_id)|
+--------------+
|32478542692458|
+--------------+
而行数是
stop_df.count()
Out[4]: 8134605
【问题讨论】:
-
请注意,数据库自动增量(或 Oracle 中的“序列”)不保证增量是连续的。出于性能原因,ID 由块分配,因此可能永远不会使用块末尾的 ID。部分失败将导致一些块被完全丢弃。 RDBMS 保证唯一性、单调性(虽然并发事务可能使用重叠的 ID),但不保证连续性。
标签: python apache-spark pyspark