画像ごとのカウント
このデータセット向けのデータパイプラインを構築する次のタスクは、分析に役立つ列をいくつか作成することです。先に作成した 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.____(____('____')).____(____)