Ho un dataframe che assomiglia segue:Spark, dataframe: applicare trasformatore/stimatore sui gruppi
+-----------+-----+------------+
| userID|group| features|
+-----------+-----+------------+
|12462563356| 1| [5.0,43.0]|
|12462563701| 2| [1.0,8.0]|
|12462563701| 1| [2.0,12.0]|
|12462564356| 1| [1.0,1.0]|
|12462565487| 3| [2.0,3.0]|
|12462565698| 2| [1.0,1.0]|
|12462565698| 1| [1.0,1.0]|
|12462566081| 2| [1.0,2.0]|
|12462566081| 1| [1.0,15.0]|
|12462566225| 2| [1.0,1.0]|
|12462566225| 1| [9.0,85.0]|
|12462566526| 2| [1.0,1.0]|
|12462566526| 1| [3.0,79.0]|
|12462567006| 2| [11.0,15.0]|
|12462567006| 1| [10.0,15.0]|
|12462567006| 3| [10.0,15.0]|
|12462586595| 2| [2.0,42.0]|
|12462586595| 3| [2.0,16.0]|
|12462589343| 3| [1.0,1.0]|
+-----------+-----+------------+
Dove i tipi di colonne sono: userID: Lungo, gruppo: Int, e le caratteristiche: Vettore.
Questo è già un DataFrame raggruppato, cioè un ID utente apparirà in un particolare gruppo al massimo una volta.
Il mio obiettivo è scalare la colonna features
per gruppo.
C'è un modo per applicare un feature transformer (nel mio caso mi piacerebbe applicare un StandardScaler) per gruppo invece di applicare appieno dataframe.
P.S. usare ML non è obbligatorio, quindi nessun problema se la soluzione è basata su MLlib.
Come pensate di installare lo standardScaler? In ogni gruppo? – eliasah
Mi piacerebbe ridimensionare ogni dimensione del vettore delle caratteristiche, per gruppo. – Rami
AFAIK non lo fa, ma puoi sempre applicare tutte le operazioni direttamente. Scaler funziona su RDD comunque, quindi è solo una questione di statistiche di calcolo e di trasformazione per gruppo. – zero323