반응형

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)
반응형
'Data > Data Analysis' 카테고리의 다른 글
[Snowflake] strtok 여러 delimiter를 사용하여 split 대체함수 (0) | 2021.11.22 |
---|---|
[Pyspark] 'Detected implicit cartesian product for LEFT OUTER join between logical plans' 에러 해결방법 (0) | 2021.07.12 |
[Pyspark] 차원축소 pyspark.ml.feature의 PCA 사용 (0) | 2021.04.09 |
[Pyspark] sparkSQL groupBy concat사용하기 (0) | 2021.02.24 |
[Pyspark] 비어있는 dataframe만들기 (0) | 2021.01.18 |