簡體   English   中英

如何使用Spark / Python枚舉組中的行?

[英]How can I enumerate rows in groups with Spark/Python?

我想像Pandas一樣枚舉分組值:

枚舉DataFrame中每個組的每一行

Spark / Python有什么方法?

使用row_number窗口函數:

from pyspark.sql.functions import row_number
from pyspark.sql import Window

w = Window.partitionBy("some_column").orderBy("some_other_column")
df.withColumn("rn", row_number().over(w))

您可以通過執行以下操作在rdd級別實現此目的:

rdd = sc.parallelize(['a', 'b', 'c'])
df = spark.createDataFrame(rdd.zipWithIndex())
df.show()

結果是: +---+---+ | _1| _2| +---+---+ | a| 0| | b| 1| | c| 2| +---+---+ +---+---+ | _1| _2| +---+---+ | a| 0| | b| 1| | c| 2| +---+---+ +---+---+ | _1| _2| +---+---+ | a| 0| | b| 1| | c| 2| +---+---+如果你只需要唯一的ID,而不是真正的連續索引,你也可以使用更高效的zipWithUniqueId() ,因為在每個分區本地完成。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM