さらにパースする
このデータセットは最初の形式から大きく形を変えられましたが、まだやるべきことがいくつか残っています。後続の分析で使えるようにカラムのデータを整え、中間的なカラムをいくつか削除する必要があります。
spark コンテキストは利用可能で、pyspark.sql.functions は F としてエイリアスされています。pyspark.sql.types の型はすでにインポート済みです。split_df DataFrame は前の状態のままです。コンソール領域で DataFrame に対して .printSchema() を使うと、カラム名と型を確認できます。
⚠️ 注意: AttributeError が表示された場合は、演習をリフレッシュして、コードを実行する を押さずに Run Solution をクリックしてください。
この演習はコースの一部です
PySpark でデータをクレンジングする
演習の手順
retrieverという新しい関数を作成します。引数は、分割後のカラム(cols)とカラムの総数(colcount)の2つです。この関数は、まだカラムとして定義されていないエントリ(つまり、リストの4番目以降の要素)をリストで返します。- この関数を Spark の UDF として定義し、戻り値は文字列の配列にします。
- UDF と DataFrame 内の利用可能なカラムを使って、新しいカラム
dog_listを作成します。 _c0、colcount、split_colsの各カラムを削除します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
def retriever(____, ____):
# Return a list of dog data
return ____[4:____]
# Define the method as a UDF
udfRetriever = ____(____, ArrayType(____))
# Create a new column using your UDF
split_df = split_df.withColumn('dog_list', ____(____, ____))
# Remove the original column, split_cols, and the colcount
split_df = split_df.drop('____').____('____').____('____')