딥상어동의 딥한 생각

[Type hint] spark.DataFrame VS pd.DataFrame

by 딥상어동의 딥한생각

 

핵심내용

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으로 표기되는 것을 확인할 수 있습니다.

 

이상입니다.

블로그의 정보

딥상어동의 딥한생각

딥상어동의 딥한생각

활동하기