【发布时间】:2016-07-12 10:48:19
【问题描述】:
我想在给定窗口中连续获取最频繁出现的字符串,并将该值放在新行中。 (我正在使用 Pyspark)
这就是我的桌子的样子。
window label value
123 a 54
123 a 45
123 a 21
123 b 99
123 b 78
我正在做一些聚合,目前我正在按window 和label 进行分组。
sqlContext.sql(SELECT avg(value) as avgValue FROM table GROUP BY window, label)
这将返回窗口 = 123 和标签 = a 的平均值以及窗口 = 123 和标签 = b 的平均值
我想做的是按最常出现的字符串降序排列label,所以在我的sql语句中我可以做SELECT first(label) as majLabel, avg(value) as avgValue FROM table GROUP BY window
我正在尝试在窗口函数中执行此操作,但还没有完成。
group = ["window"]
w = (Window().partitionBy(*group))
【问题讨论】:
-
@zero323 这似乎是您知道如何处理的事情?鉴于您在 Spark 窗口函数方面的专业知识:D
标签: apache-spark pyspark apache-spark-sql spark-dataframe window-functions