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

E se volessi includere più colonne come se volessi raggruppare per colonna1, colonna2 e colonna3?Come raggruppare utilizzando più colonne nelle collezioni di scala

Eventuali suggerimenti?

+0

La tua domanda non è molto chiara. Potresti aggiungere un esempio? – Dici

+0

vedere i miei record è un elenco di record con colonna1, colonna2, colonna3 e così via. E voglio raggruppare per il risultato usando groupby column1, column2 – krisp

+0

Non vedo cosa sia un raggruppamento multi-colonna, stavo chiedendo un exampe concreto – Dici

risposta

18

Prova

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

Questo gruppo volontà da una tupla composta da quei 3 colonne.

+0

Grazie, sembra che funzioni per me. Tutti gli esempi che ho visto utilizzavano solo 1 gruppo e non stavo ottenendo come utilizzare più colonne. Puoi indicarmi alcune nozioni di base su questo in modo che io possa capire meglio. grazie anche a @Dici scusa per non essere riuscito a incollare il codice esatto di base. – krisp

+0

Come spiegazione di base. Quando si utilizza groupBy, si fornisce una funzione che accetta un elemento del tipo a cui è stato chiamato e restituisce un elemento che rappresenta il gruppo in cui dovrebbe essere inserito. GroupBy esegue iterazioni su tutti gli elementi che costruiscono la nuova raccolta. per esempio. se hai due oggetti Record con campi col1, col2, col3 - valori "a", "b", "c" per il primo e "a", "b", "x" per il secondo. Il primo restituirà una tupla ("a", "b", "c"), quindi la inserirà nel proprio gruppo. Il secondo restituirà una tupla ("a", "b", "x"), che è diversa dalla prima tupla e quindi entra nel proprio gruppo. – Ren

+0

Qual è la differenza tra 'record' e' record'? –

Problemi correlati