본문 바로가기

Data/Data Analysis

[Pyspark] UDF함수에서 return 을 list형식으로 하고싶을 때

반응형

pyspark 에서 자주쓰이는 udf 함수

가끔 udf함수를 이용해서 list를 return할 때가 있는데, 여기서 문제는 printSchema()함수로 pyspark.dataframe을 확인할때 data type이 array(또는 list)형식으로 찍히는게 아니고 string으로 찍힌다. 따라서 udf함수가 return을 할 때 따로 return하는 데이터 타입을 선언해줘야한다.

 

다음코드와 같이 해줄수가있다

import pyspark.sql.functions as F
from pyspark.sql.types import *

def sorting_team_id(temp):
    return sorted(temp)

change = F.udf(lambda z: sorting_team_id(z), ArrayType(StringType()))

1. from pyspark.sql.types import * 를 선언

2. udf함수의 두번째 파라미터 값에 ArrayType(StringType()) 이라는 return값의 데이터형식을 선언해줘야함

반응형

'Data > Data Analysis' 카테고리의 다른 글

[Pandas] DataCamp - Histogram, filter data  (0) 2019.11.25
[Pandas] Datacamp - Clean a variable  (0) 2019.11.25
[Pyspark] sorted와 sort 의 차이  (2) 2019.11.14
[Pyspark] pyspark 로컬에 설치  (1) 2019.10.19
[Pyspark] dataframe join 문  (0) 2019.09.16