편집 기록

편집 기록
  • 프로필 nowp님의 편집
    날짜2021.01.27

    pyspark에서 udf를 사용해서 dict 타입을 반환하는 함수를 사용했는데 왜 string 형태가 반환될까요...?


    from pyspark.sql.functions import  udf    
    
    @udf("String")
    def pl_code_1(con):
        data = dict()
        ... # 딕셔너리 업데이트 과정
        return data
    
    df = data.withColumn("test", pl_code_1(col("Con")))
    df.show(truncate=False)
    
    

    이런식으로 udf를 사용하여 pl_code_1이란 함수에 col("Con")값을 넣으면 딕셔너리 형태가 리턴 되는 함수를 사용했습니다.

    그런데 데이터프레임으로 show()로 출력해보면 해당 컬럼 값이

    {key=value, key2=value2...}
    

    이런형태로 나오네요. 따옴표도 없고 key, value 를 구분하는 구분자가 ":"도 아니고 "="으로 되어 있습니다. 이건 대체 어떻게 해야 test란 컬럼에서 딕셔너리 형태로 받을 수 있을까요?

  • 프로필 김재민님의 편집
    날짜2021.01.26

    pyspark에서 udf를 사용해서 dict 타입을 반환하는 함수를 사용했는데 왜 string 형태가 반환될까요...?


    from pyspark.sql.functions import  udf    
    
    @udf("String")
    def pl_code_1(con):
        data = dict()
        ... # 딕셔너리 업데이트 과정
        return data
    
    df = data.withColumn("test", pl_code_1(col("Con")))
    df.show(truncate=False)
    
    

    이런식으로 udf를 사용하여 pl_code_1이란 함수에 col("Con")값을 넣으면 딕셔너리 형태가 리턴 되는 함수를 사용했습니다.

    그런데 데이터프레임으로 show()로 출력해보면 해당 컬럼 값이

    {key=value, key2=value2...}
    

    이런형태로 나오네요.... 따옴표도 없고 key, value 를 구분하는 구분자가 ":"도 아니고 "="으로 되어 있습니다.... 이건 대체 어떻게 해야 test란 컬럼에서 딕셔너리 형태로 받을 수 있을까요?