如何使用 Spark 数据帧实现"over (partition by value)"



我正计划修改Spark DataFrame列以实现以下蜂巢QL的相似目的:

SELECT Id, MIN(Id) over (PARTITION BY Age) Rep FROM Employees

我的问题是如何在UDF中实现" Over(partition by ..)"?

我的电话是这样的:

def _udfuntion = { ... }
val ownfunc = udf(_udfunction)
df.withColumn("Rep", ownfunc($"Id", $"Age"))

您需要使用用户定义的聚合功能(UDAF)而不是UDF。

那里有一些很棒的例子,例如https://docs.databricks.com/spark/latest/spark-sql/udaf-scala.html和https://jaceklaskowski.gitbooks.io/mastering-apache-park/spark-sql-userdefinedaggregatefunction.html

相关内容

  • 没有找到相关文章

最新更新