이미지별 개수
이 데이터셋을 위한 데이터 파이프라인을 구축하는 다음 작업은 분석 중심의 열을 몇 개 만드는 것입니다. 앞서 만든 dog_list 열을 기반으로 각 이미지에서 발견된 개 수를 계산해 달라는 요청을 받았어요. 또한 일부 데이터 열의 값을 더 잘 파싱할 수 있도록 DogType도 만들어 두었습니다.
joined_df는 마지막에 정의한 상태로 제공되며, DogType StructType도 정의되어 있습니다. pyspark.sql.functions는 F 별칭으로 사용할 수 있습니다.
이 연습은 강의의 일부입니다
PySpark로 데이터 정제하기
연습 안내
dog_list의 각 항목을 적절한 부분으로 분리하는 Python 함수를 만드세요. 문자열은 알맞은 타입으로 변환하지 않으면 DogType이 올바르게 파싱되지 않습니다.- 위 함수를 사용해 UDF를 만드세요.
- UDF를 사용해
dogs라는 새 열을 만드세요. - 새 열에서 앞 10개 행에 대한 개 수를 표시하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# Create a function to return the number and type of dogs as a tuple
def dogParse(doglist):
dogs = []
for dog in doglist:
(breed, start_x, start_y, end_x, end_y) = dog.____('____')
dogs.append((____, int(____), ____, ____, ____))
return dogs
# Create a UDF
udfDogParse = ____(____, ArrayType(____))
# Use the UDF to list of dogs
joined_df = joined_df.____('____', ____('____'))
# Show the number of dogs in the first 10 rows
joined_df.____(____('____')).____(____)