PySpark로 하는 Feature Engineering
John Hogue
Lead Data Scientist, General Mills
df.describe(['LISTPRICE']).show()
+-------+------------------+
|summary| LISTPRICE|
+-------+------------------+
| count| 5000|
| mean| 263419.365|
| stddev|143944.10818036905|
| min| 100000|
| max| 99999|
+-------+------------------+
pyspark.sql.functions.mean(col)pyspark.sql.functions.skewness(col)pyspark.sql.functions.min(col)cov(col1, col2)corr(col1, col2)mean(col)df.agg({'SALESCLOSEPRICE': 'mean'}).collect()
[Row(avg(SALESCLOSEPRICE)=262804.4668)]
cov(col1, col2)df.cov('SALESCLOSEPRICE', 'YEARBUILT')
1281910.3840634783

Seaborn 등 표준 라이브러리로 PySpark DataFrame을 시각화하려면 Pandas로 변환해야 합니다.
경고: 변환 전에 PySpark DataFrame을 샘플링하세요!
sample(withReplacement, fraction, seed=None)withReplacement 샘플 내 반복 허용fraction 유지할 레코드 비율(%)seed 재현성을 위한 랜덤 시드# PySpark DataFrame의 50%를 샘플링하고 행 수 확인
df.sample(False, 0.5, 42).count()
2504
Seaborn distplot()
seaborn.distplot(a)a : Series, 1차원 배열 또는 리스트. 관측 데이터.# 시각화 라이브러리 임포트 import seaborn as sns# DataFrame 샘플링 sample_df = df.select(['SALESCLOSEPRICE']).sample(False, 0.5, 42)# 샘플을 Pandas DataFrame으로 변환 pandas_df = sample_df.toPandas()# 시각화 sns.distplot(pandas_df)

Seaborn lmplot()
seaborn.lmplot(x, y, data)x, y : 문자열, 입력 변수; 데이터의 열 이름이어야 합니다.data : Pandas DataFrame# 시각화 라이브러리 임포트 import seaborn as sns# 열 선택 s_df = df.select(['SALESCLOSEPRICE', 'SQFTABOVEGROUND']) # DataFrame 샘플링 s_df = s_df.sample(False, 0.5, 42)# Pandas DataFrame으로 변환 pandas_df = s_df.toPandas()# 시각화 sns.lmplot(x='SQFTABOVEGROUND', y='SALESCLOSEPRICE', data=pandas_df)

PySpark로 하는 Feature Engineering