【发布时间】:2020-09-21 16:51:04
【问题描述】:
我想在我的数据窗口上使用标准缩放器pyspark.ml.feature.StandardScaler。
df4=spark.createDataFrame(
[
(1,1, 'X', 'a'),
(2,1, 'X', 'a'),
(3,9, 'X', 'b'),
(5,1, 'X', 'b'),
(6,2, 'X', 'c'),
(7,2, 'X', 'c'),
(8,10, 'Y', 'a'),
(9,45, 'Y', 'a'),
(10,3, 'Y', 'a'),
(11,3, 'Y', 'b'),
(12,6, 'Y', 'b'),
(13,19,'Y', 'b')
],
['id','feature', 'txt', 'cat']
)
w = Window().partitionBy(..)
我可以通过调用 .fit& .transform 方法对整个数据框执行此操作。但不是在我们通常使用的w 变量上,例如F.col('feature') - F.mean('feature').over(w)。
我可以将所有窗口化/分组数据转换为单独的列,将其放入数据框中,然后对其应用 StandardScaler 并转换回1D。还有其他方法吗?最终目标是尝试不同的缩放器,包括pyspark.ml.feature.RobustScaler。
【问题讨论】:
标签: python-3.x apache-spark pyspark window-functions