我有一个 Spark 数据框:df1 如下:
age = spark.createDataFrame(["10","11","13"], "string").toDF("age")
age.show()
+---+
|age|
+---+
| 10|
| 11|
| 13|
+---+
我需要向数据框中添加行号列以使其:
+---+------+
|age|col_id|
+---+------+
| 10| 1 |
| 11| 2 |
| 13| 3 |
+---+------+
我的数据框中的所有列都不包含唯一值。我尝试使用F.monotonically_increasing_id()),但它只是按递增顺序生成随机数。
>>> age = spark.createDataFrame(["10","11","13"], "string").toDF("age").withColumn("rowId1", F.monotonically_increasing_id())
>>> age
DataFrame[age: string, rowId1: bigint]
>>> age.show
<bound method DataFrame.show of DataFrame[age: string, rowId1: bigint]>
>>> age.show()
+---+-----------+
|age| rowId1|
+---+-----------+
| 10|17179869184|
| 11|42949672960|
| 13|60129542144|
+---+-----------+
由于我没有任何包含唯一数据的列,因此我担心使用窗口函数和生成row_numbers。那么,有没有一种方法可以row_count在数据框中添加一列,该列给出:
+---+------+
|age|col_id|
+---+------+
| 10| 1 |
| 11| 2 |
| 13| 3 |
+---+------+
如果窗口功能是唯一的实现方法,我如何确保所有数据都位于单个分区下?或者如果有一种方法可以在不使用窗口函数的情况下实现相同的功能,那么如何实现它?任何帮助表示赞赏。
慕标琳琳
宝慕林4294392
相关分类