Ich habe dieses DataFrame df
mit 3 Spalten: id
, type
und activity
.So gruppieren Sie Daten nach Spalte und berechnen die Anzahl der Beobachtungen pro Gruppe
val myData = (Seq(("aa1", "GROUP_A", "10"),("aa1","GROUP_A", "12"),("aa2","GROUP_A", "hy"),("aa2", "GROUP_B", "14"),
("aa3","GROUP_B", "11"),("aa3","GROUP_B","12"),("aa2", "GROUP_3", "12"))
val df = sc.parallelize(myData).toDF()
Ich muss Gruppendaten von type
und dann die Anzahl der Aktivitäten für jeden id
berechnen. Dies ist das erwartete Ergebnis:
type id count
GROUP_A aa1 2
GROUP_A aa2 1
GROUP_B aa3 3
GROUP_B aa2 1
Das ist, was ich versucht:
df.groupBy("type","id").count().sort("count").show()
aber es kein korrektes Ergebnis.
Vielen Dank. Es sollte 'toDF (" id "," type "," count ") sein, weil' aa..' 'id' ist. Lass mich nachschauen. – Dinosaurius
meine Antwort bearbeitet, so ist es, wie es sein sollte –