Mam DataFrame że wygląda następująco:Spark, DataFrame: zastosować transformator/Estymator na grupach
+-----------+-----+------------+
| 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]|
+-----------+-----+------------+
Gdzie typy kolumn są: identyfikator użytkownika: Długi, grupa: Int, i cechy: vector.
Jest to już pogrupowana DataFrame, tzn. Identyfikator użytkownika pojawi się w danej grupie w tym samym czasie.
Moim celem jest skalowanie kolumny features
dla grupy.
Czy istnieje sposób, aby zastosować feature transformer (w moim przypadku chciałbym zastosować StandardScaler) na grupę zamiast stosowania jej do pełnej DataFrame.
P.S. używanie ML nie jest obowiązkowe, więc nie ma problemu, jeśli rozwiązanie jest oparte na MLlib.
W jaki sposób planujesz zainstalować StandardScaler? W każdej grupie? – eliasah
Chciałbym skalować każdy wymiar wektora funkcji dla każdej grupy. – Rami
AFAIK to nie robi, ale zawsze możesz zastosować wszystkie operacje bezpośrednio. Scaler działa na RDD, więc jest to tylko kwestia obliczania statystyk i transformacji na grupę. – zero323