我有一个如下所示的 DataFrame:
+-----------+-----+------------+
| 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]|
+-----------+-----+------------+
其中列类型为:userID:Long、group:Int 和 features:vector。
这已经是一个分组的 DataFrame,即一个用户 ID 最多会出现在一个特定的组中。
我的目标是按组缩放features
列。
有没有办法为每个组应用一个特征转换器(在我的情况下,我想应用一个StandardScaler) ,而不是将其应用到整个 DataFrame。
使用 ML 的 PS 不是强制性的,所以如果解决方案基于 MLlib 没有问题。