Scala Spark数据帧中的minBy等效
我正在Spark Dataframe中寻找等价的Scala Spark数据帧中的minBy等效,scala,apache-spark,apache-spark-sql,Scala,Apache Spark,Apache Spark Sql,我正在Spark Dataframe中寻找等价的minByaggregate函数,或者可能需要手动聚合。有什么想法吗?谢谢 https://prestodb.io/docs/current/functions/aggregate.html#min_by 没有这样的直接函数从数据帧获取“minu by”值 这是Spark中的两级操作。首先groupby列,然后应用min函数为每个组的每个数字列获取最小值 scala> val inputDF = Seq(("a", 1),("b", 2),
minBy
aggregate函数,或者可能需要手动聚合。有什么想法吗?谢谢
https://prestodb.io/docs/current/functions/aggregate.html#min_by
没有这样的直接函数从数据帧获取“minu by”值 这是Spark中的两级操作。首先groupby列,然后应用min函数为每个组的每个数字列获取最小值
scala> val inputDF = Seq(("a", 1),("b", 2), ("b", 3), ("a", 4), ("a", 5)).toDF("id", "count")
inputDF: org.apache.spark.sql.DataFrame = [id: string, count: int]
scala> inputDF.show()
+---+-----+
| id|count|
+---+-----+
| a| 1|
| b| 2|
| b| 3|
| a| 4|
| a| 5|
+---+-----+
scala> inputDF.groupBy($"id").min("count").show()
+---+----------+
| id|min(count)|
+---+----------+
| b| 2|
| a| 1|
+---+----------+
没有这样的直接函数从数据帧获取“minu by”值 这是Spark中的两级操作。首先groupby列,然后应用min函数为每个组的每个数字列获取最小值
scala> val inputDF = Seq(("a", 1),("b", 2), ("b", 3), ("a", 4), ("a", 5)).toDF("id", "count")
inputDF: org.apache.spark.sql.DataFrame = [id: string, count: int]
scala> inputDF.show()
+---+-----+
| id|count|
+---+-----+
| a| 1|
| b| 2|
| b| 3|
| a| 4|
| a| 5|
+---+-----+
scala> inputDF.groupBy($"id").min("count").show()
+---+----------+
| id|min(count)|
+---+----------+
| b| 2|
| a| 1|
+---+----------+
令人惊叹的!可以用多列来分组吗?是的,我们可以用多列来分组。嗨,拉克什曼·巴蒂尼,好的,我知道这是一个两步操作。我提出这个问题是为了了解RDD/DataFrame级别中可用的任何函数来替换现有的UDF。谢谢,太棒了!可以用多列来分组吗?是的,我们可以用多列来分组。嗨,拉克什曼·巴蒂尼,好的,我知道这是一个两步操作。我提出这个问题是为了了解RDD/DataFrame级别中可用的任何函数来替换现有的UDF。谢谢