Spark에서 사용자 정의 함수 사용하기
DataFrame을 다룰 때 Spark에 내장된 문자열 함수의 강력함을 보셨을 거예요. 하지만 일정 지점을 넘어서면, 함수 호출이 복잡하게 얽혀(일명 ‘rat's nest’) 데이터를 처리하기가 어려워집니다. 이런 경우 DataFrame을 처리하는 데 User Defined Function(UDF)을 활용할 수 있어요.
이번 연습에서는 voter_df DataFrame을 사용하되, first_name 열을 이름과 미들 네임으로 교체해 보겠습니다.
pyspark.sql.functions 라이브러리는 F라는 별칭으로 사용 가능해요. pyspark.sql.types의 클래스들은 이미 임포트되어 있습니다.
이 연습은 강의의 일부입니다
PySpark로 데이터 정제하기
연습 안내
getFirstAndMiddle()함수를 수정해, 이름 목록에서 마지막 항목을 제외한 나머지를 공백으로 이어 붙인 문자열을 반환하세요.- 해당 함수를 사용자 정의 함수(UDF)로 정의하세요. 반환형은 문자열이어야 합니다.
- 만든 UDF를 사용해
voter_df에first_and_middle_name이라는 새 열을 생성하세요. - DataFrame을 출력하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
def getFirstAndMiddle(names):
# Return a space separated string of names
return ' '.join(____)
# Define the method as a UDF
udfFirstAndMiddle = F.____(____, ____)
# Create a new column using your UDF
voter_df = voter_df.withColumn('first_and_middle_name', ____(____))
# Show the DataFrame
____