Ich möchte die am häufigsten vorkommende Zeichenfolge in einer Zeile in einem bestimmten Fenster abrufen und diesen Wert in einer neuen Zeile haben. (benutze Pyspark)Spark-Fensterfunktion aggregiert durch häufigsten Wert in Zeile
So sieht meine Tabelle aus.
window label value
123 a 54
123 a 45
123 a 21
123 b 99
123 b 78
Ich mache einige Aggregation und zur Zeit sowohl ich Gruppierung von window
und label
.
sqlContext.sql(SELECT avg(value) as avgValue FROM table GROUP BY window, label)
Dies gibt den Mittelwert in dem Fenster = 123 und label = a und die durchschnittliche wo Fenster = 123 und label = b
Was ich versuche, zu tun ist, um label
durch am häufigsten Zeichenfolge absteigend vorkommenden , also dann in meiner SQL-Anweisung kann ich tun SELECT first(label) as majLabel, avg(value) as avgValue FROM table GROUP BY window
Ich versuche, dies in einer Fensterfunktion zu tun, aber bin gerade nicht ganz dahin.
group = ["window"]
w = (Window().partitionBy(*group))
@ zero323 dies scheint Wie etwas, womit du umgehen könntest? Angesichts Ihrer Expertise mit Sparks Fensterfunktionen: D – other15