본문 바로가기

Data/Data Analysis

[Pyspark] pyspark Pipeline을 이용한 Data Normalizatioon

반응형

Pyspark에서 Min Max Normalization을 처리할때, Pipeline이 없을 경우 다음과 같이 처리를 해야함

1. 먼저 처리하고싶은 column을 vector화 진행

2. vector화 모델에 fit처리

3. vector화된 column을 다시 MinMaxScaler 모델에 대입

4. MinMaxScaler에 대하여 Fit처리

 

하지만 Pipeline이 있을경우 두번씩 쓰였던 fit, transform문이 한줄로 줄여진다. -> 코드는 깔끔한게 최고!

from pyspark.ml.feature import MinMaxScaler
from pyspark.ml.feature import VectorAssembler
from pyspark.ml import Pipeline

try:
	df = DataFrame() // 임시 pyspark dataframe
    assembler = VectorAssembler(inputCols = ['Scoring'], outputCol = 'VScoring')
    scaler = MinMaxScaler(inputCol = 'VScoring', outputCol = 'MinMaxScore')
    pipeline = Pipeline(stages=[assembler, scaler])
    scalerModel = pipeline.fit(result)
    scalerData = scalerModel.transform(result)
    scalerData.show(100,False)
except Exception as error_m:
    print(error_m)
반응형