2015-07-17 10 views
8
records.groupBy(_.column1) 

Was ist, wenn ich mehr Spalten wie hinzufügen möchte, wenn ich nach Spalte1, Spalte2 und Spalte3 gruppieren möchte?So gruppieren Sie mehrere Spalten in Scala-Sammlungen

Irgendwelche Hinweise?

+0

Ihre Frage ist nicht sehr klar. Könnten Sie ein Beispiel hinzufügen? – Dici

+0

siehe meine Datensätze ist eine Liste von Datensätzen mit Spalte1, Spalte2, Spalte3 und so weiter. Und ich möchte nach dem Ergebnis gruppieren mit groupby column1, column2 – krisp

+0

Ich sehe nicht, was eine mehrspaltige Gruppierung ist, fragte ich nach einem konkreten Beispiel – Dici

Antwort

18

Versuchen

records.groupBy(record => (record.column1, record.column2, record.column3)) 

Dies wird Gruppe durch ein Tupel dieser drei Säulen zusammengesetzt.

+0

Danke, das scheint für mich zu arbeiten. Alle Beispiele, die ich gesehen habe, benutzten nur 1 Gruppe von und ich bekam nicht wie man mehrere Spalten benutzt. Kannst du mich auf einige Grundlagen dazu hinweisen, damit ich das besser verstehen kann? auch danke @Dici tut mir leid, dass ich die genaue Code-Basis nicht einfügen konnte. – krisp

+0

Als eine grundlegende Erklärung. Wenn Sie groupBy verwenden, stellen Sie eine Funktion bereit, die ein Element des aufgerufenen Typs aufnimmt und ein Element zurückgibt, das die Gruppe darstellt, in die es eingefügt werden soll. GroupBy iteriert alle Elemente, die die neue Sammlung erstellen. z.B. wenn Sie zwei Record-Objekte mit Feldern col1, col2, col3 hatten - Werte "a", "b", "c" für das erste und "a", "b", "x" für das zweite. Der erste gibt ein Tupel ("a", "b", "c") zurück und fügt ihn dann in seine eigene Gruppe ein. Die zweite gibt ein Tupel ("a", "b", "x") zurück, das sich vom ersten Tupel unterscheidet und somit in eine eigene Gruppe geht. – Ren

+0

Was ist der Unterschied zwischen 'record' und' records'? –

Verwandte Themen