我有一个 pyspark
Dataframe。我想添加一个包含行号的列。
这就是我要做的
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
1条答案
按热度按时间1tu0hz3e1#
从spark单调递增的\u id文档:
生成单调递增的64位整数的列。
生成的id保证单调递增且唯一,但不是连续的。当前的实现将分区id放在高31位,将每个分区内的记录号放在低33位。假设Dataframe少于10亿个分区,每个分区少于80亿条记录。
使用窗口
row_number
函数获取行号。