
226
11
章
Spark
アプリケーションのパッケージ化
これで、この関数を使って距離を計算してキロメートルに変換できます。
uber = uber.withColumn(
'miles',
getDistance(
func.col('pickup_latitude'),
func.col('pickup_longitude'),
func.col('dropoff_latitude'),
func.col('dropoff_longitude')
)
)
uber = uber.withColumn(
'kilometers',
convertMiles(func.col('miles')))
.withColumn(...)
メソッドを使えば、必要な値を持つ列を作成して追加できます。
ここで注意が必要です。
PySpark
の組み込み関数を使う場合、それらが
Python
のオブジェク
トであるとはいえ、背後でその呼び出しは変換されて
Scala
のコードとして実行されます。し
かし、
Python
で書いた独自のメソッドは
Scala
には変換されないため、
Python
の
VM
で実行
されることになります。これはパフォーマンスに大きな影響を及ぼします。
それではパズルのピースを組み合わせて、ジョブを投入してみましょう。
11.2.4
ジョブの投入
CLIで次のように入力してみてください(フォルダの構成は GitHubの構成から変わっていないもの
と し ま す )。
./launch_spark_submit.sh ...