딥상어동의 딥한 프로그래밍/Spark
[Type hint] spark.DataFrame VS pd.DataFrame
딥상어동의 딥한생각
2022. 10. 6. 23:29

핵심내용
pyspark의 데이터프레임과 pandas 데이터프레임의 type hint를 비교해봅니다.
type hint 비교
아래와 같이 라이브러리를 생성해줍니다.
from pyspark.sql import *
from pyspark.sql.types import *
from pyspark.sql.functions import *
import pandas as pd
그리고, pandas의 DataFrame과 pyspark의 DataFrame의 type을 비교해봅시다.
print(type(spark.sql("select 1")))
print(type(pd.DataFrame([])))

시작은 다르지만, 끝은 모두 DataFrame으로 동일합니다.
여기서 주목할점은 다음과 같은 라이브러리 임포트 형식인데요.
from pyspark.sql import *
import pandas as pd
바로바로...! pyspark.sql을 선언하면 DataFrame이 딸려온다는 사실입니다.

따라서, 위와 같이 라이브러리를 import 했을 경우, pyspark DataFrame은 그냥 DataFrame으로 pandas DataFrame은 pd.DataFrame으로 type hint를 주시면 됩니다.
def _spark_df_type_hint() -> DataFrame:
print("Hello World")
def _pandas_df_type_hint() -> pd.DataFrame:
print("Hello World")
한번 체크해보겠습니다.


DataFrame으로 typehint를 선언했을 때는 pyspark.sql.dataframe.DataFrame으로 표기되고 pd.DataFrame으로 typehint를 선언했을 때는 pandas.core.frame.DataFrame으로 표기되는 것을 확인할 수 있습니다.
이상입니다.