我有一个 pyspark 数据框,如下所示:

col1 | col2 | col3
 R      a      abc
 R      a      abc
 G      b      def
 G      b      def
 G      b      def

我想向其中添加新列,这将按照如下所示的计数为这些唯一行生成索引:
col1 | col2 | col3 | new_column
 R      a      abc      0
 R      a      abc      1
 G      b      def      0
 G      b      def      1
 G      b      def      2

请帮助我使用 pyspark 生成这个新列。

提前致谢!

最佳答案

按列对数据进行分区,然后使用行号为新列赋值。

from pyspark.sql.window import Window as W
from pyspark.sql import functions as F

windowSpec = W.partitionBy("col1","col2","col3").orderBy("col1","col2","col3")
df.withColumn("new_column", F.row_number().over(windowSpec)).show()

关于python - 为pyspark中的唯一行生成序列列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53875075/

10-09 07:27
查看更多