始める無料で始める

Spark でユーザー定義関数を使う

DataFrame を操作する際、Spark の組み込み文字列関数の強力さをすでに見てきました。ただし、ある程度複雑になると、関数呼び出しが入り組んでしまい、処理が難しくなります。そんなときに活用できるのが、User Defined Functions(UDF)です。ここでは UDF を使って DataFrame を操作してみましょう。

この演習では voter_df DataFrame を使い、first_name 列を「名+ミドルネーム」に置き換えます。

pyspark.sql.functions ライブラリはエイリアス F で利用できます。pyspark.sql.types のクラスはすでにインポート済みです。

この演習はコースの一部です

PySpark でデータをクレンジングする

コースを見る

演習の手順

  • getFirstAndMiddle() 関数を編集し、名前のリストから最後の要素を除いたものをスペース区切りの文字列で返すようにします。
  • この関数をユーザー定義関数(UDF)として定義します。戻り値は文字列型にしてください。
  • 作成した UDF を使って、voter_dffirst_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
____
コードを編集して実行