【问题标题】:Aggregation using Dataframe [duplicate]使用数据框聚合 [重复]
【发布时间】:2018-07-05 10:49:12
【问题描述】:

我是 Spark 的新手。在使用数据框实现 Spark 中的逻辑时需要帮助。 假设我有一个数据框 df1,其中包含以下数据。

DF1:

txn-id,productid,desc
1,'AA','ADESC'
2,'BB','BDESC'
3,'CC','CDESC'
4,'BB','ZDESC'
5,'CC','YDESC'

我想要使用数据框(不使用 spark sql)以以下格式输出所需的输出。基本上想要对 productid 进行分组,并希望选择事务 id 的最大值和该事务 id 的 desc。

结果:

txn-id,productid,desc
1,'AA','ADESC'
4,'BB','ZDESC'
5,'CC','YDESC'

你能帮我解释一下逻辑吗?

谢谢, 苏米特

【问题讨论】:

    标签: apache-spark apache-spark-sql


    【解决方案1】:

    productid col.上使用带有分区的窗口。

    import org.apache.spark.sql.expressions.Window
    import org.apache.spark.sql.functions._
    
    df1.select(col("*"), row_number.over(
      Window.partitionBy("productid").orderBy(col("txn-id").desc)
    ).as("rnum")).filter(col("rnum") === 1).drop("rnum")
    

    【讨论】:

      猜你喜欢
      • 2018-09-19
      • 2021-02-05
      • 2019-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多