apache-spark - PySpark-获取组中每一行的行号

标签 apache-spark pyspark apache-spark-sql spark-dataframe pyspark-sql

使用pyspark,我希望能够对spark数据框进行分组,对分组进行排序,然后提供行号。所以

Group    Date
  A      2000
  A      2002
  A      2007
  B      1999
  B      2015


会成为

Group    Date    row_num
  A      2000      0
  A      2002      1
  A      2007      2
  B      1999      0
  B      2015      1

最佳答案

使用窗口功能:



from pyspark.sql.window import *
from pyspark.sql.functions import row_number

df.withColumn("row_num", row_number().over(Window.partitionBy("Group").orderBy("Date")))

关于apache-spark - PySpark-获取组中每一行的行号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45513959/

相关文章:

azure - c# 客户端生成的 azure 容器的 SAS token 不允许 getAccessControl/setAccessControl

python - 从带有文本列的 Spark 数据帧创建 TF_IDF 向量

apache-spark - 使用PySpark将数据从HDFS索引到Elastic Search

python - 执行 PySpark 代码时遇到 Py4JJavaError

mysql - 如何将mysql数据从hdfs加载到pyspark中

postgresql - 将 PostgreSQL 数据库加载到 SchemaRDD

sql - spark sql count(*) 查询存储结果

apache-spark - Spark 窗口函数 - rangeBetween 日期

scala - 如何根据分配的优先级选择最重要的行?

apache-spark - Spark 2.4 中从 Amazon Redshift 读取数据