python - 为 pyspark 中的唯一行生成序列列

标签 python pyspark

我有一个 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/

相关文章:

python - 在 tkinter 中,当 Canvas 用作另一个小部件的主版时, Canvas 大小设置似乎停止工作。有办法解决这个问题吗?

python - 如何在 python 中从 yaml 存储或读取文字回车符和换行符

python - MySQL 数据库迁移 : change of string length

datetime - 如何在pyspark中将日期时间从字符串格式转换为日期时间格式?

apache-spark - PySpark 使用 UDF 创建组合

pyspark - 如何对pyspark中每个组内的变量进行排序?

apache-spark - 保存 ML 模型以供将来使用

python - 如何消除posenet波动?

python - 如何计算Python中包含特定项目的列表的项目总数

python - 如何使用 pyspark 在 txt 文件 RDD 中找到值列表的交集?