分割と展開(Split & Explode)
GARAGEDESCRIPTION のような複合フィールドを、使える形に整えるには段階を踏む必要があります。まずは、展開することでどんな価値が得られるかを早い段階で把握しておくと役立ちます。この例では、文字列をリスト風の配列に変換し、explode で展開してから、一意な値を確認します。
この演習はコースの一部です
PySparkで学ぶ特徴量エンジニアリング
演習の手順
- 必要な関数
pyspark.sql.functionsのsplit()とexplode()をインポートします。 split()を使い、df['GARAGEDESCRIPTION']を「,(カンマ+半角スペース)」で分割して新しい列garage_listを作成します。explode()を使ってdf['garage_list']の各値ごとに新しいレコードを作成し、新しい列名をex_garage_listとします。distinct()でex_garage_listの重複を除いた一意な値を取得し、最初の100行をshowで表示します。値の表示は 50 文字でトランケートしてください。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Import needed functions
____ ____ ____ ____, ____
# Convert string to list-like array
df = df.withColumn(____, ____(____, ____))
# Explode the values into new records
ex_df = df.withColumn(____, ____(____))
# Inspect the values
ex_df[['ex_garage_list']].____().____(100, ____=____)