- pdf의 head(N)는 Dataframe의 선두 N개 Record를 가지는 DataFrame을 반환
- sdf의 head(N)는 DataFrame의 선두 N개 Row Object를 list로 반환.
- sdf의 limit(N)가 DataFrame의 선두 N개 Record를 가지는 DataFrame을 반환.
- pdf는 print() 적용 시 DataFrame의 내용을 출력하지만 sdf는 DataFrame의 schema만 출력
pdf - head()
# pandas DataFrame.head(N)는 선두 N개 Record를 가지는 DataFrame 반환
print(type(titanic_pdf.head(10)))
# Pandas DataFrame은 print()로 DataFrame의 내용을 출력.
print(titanic_pdf.head(10))
sdf - head()
# spark DataFrame의 head(N)는 DataFrame의 선두 N개 Row Object를 list로 반환.
print(type(titanic_sdf.head(10)))
print(titanic_sdf.head(10))
sdf - limit()
# spark DataFrame의 limit(N)은 DataFrame의 선두 N개 Record를 가지는 DataFrame 반환.
print(type(titanic_sdf.limit(10)))
# spark DataFrame은 pandas와 다르게 print() 호출 시 값을 출력하지 않고 DataFrame 스키마 출력
print(titanic_sdf.limit(10))
sdf - show()
# spark DataFrame의 내용을 출력하기 위해서는 show() 메소드를 사용해야 함.
print(titanic_sdf.limit(10).show())
titanic_sdf.limit(10).show()
# Databricks의 display()는 spark DataFrame의 내용을 출력할 수 있음.
display(titanic_sdf)
# 메모리 절약을 위해 limit() 사용이 바람직
display(titanic_sdf.limit(10))
- pandas DataFrame의 info()는 컬럼명, data type과 not null 건수를 함께 출력
- spark DataFrame의 info() 메소드가 없으며 대신 printSchema() 메소드로 스키마(컬럼명, data type)만 출력
- not null 건수를 위해서는 별도의 SQL성 쿼리 작성 필요.
- spark dataframe은 pandas dataframe과 비슷하게 describe()를 통해 모든 컬럼값들의 건수/평균/표준편차/최소값/최대값 등의 정보를 확인할 수 있음. 다만 percentile값을 만들지 않음.
- pandas dataframe과 다르게 describe()시 숫자형 컬럼 뿐만 아니라 문자형 컬럼에 대해서도 건수/평균/표준편차/최소값/최대값 조사
pdf - info()
sdf - printSchema()
sdf - null 값 확인
# SQL의 count case when과 유사한 로직으로 null 값을 포함한 컬럼 확인하기
from pyspark.sql.functions import count, isnan, when, col
titanic_sdf.select([count(when(isnan(c) | col(c).isNull(), c)).alias(c) for c in titanic_sdf.columns]).show()
pdf - describe()
sdf - describe()
sdf - 수치형 자료만 확인
# number형 컬럼들에 대해서만 describe()수행할 수 있도록 select 컬럼 filtering 적용.
number_columns = [column_name for column_name, dtype in titanic_sdf.dtypes if dtype != 'string']
print(number_columns)
titanic_sdf.select(number_columns).describe().show()
pdf - shape()
sdf 적용