PySpark の groupby
これまでに、dask フレームワークとその DataFrame 抽象化を使って計算する方法を見てきました。しかし、動画でも紹介したとおり、ビッグデータの世界ではデータ処理に Spark を選ぶケースがより一般的です。
この演習では、PySpark パッケージを使って Spark DataFrame を扱います。データは前の演習と同じで、1896 年から 2016 年までのオリンピック出場選手です。
Spark DataFrame の athlete_events_spark がワークスペースに用意されています。
この演習で使うメソッドは次のとおりです。
.printSchema():Spark DataFrame のスキーマを表示します。.groupBy():集約のためにグループ化します。.mean():各グループの平均を計算します。.show():結果を表示します。
この演習はコースの一部です
データエンジニアリング入門
演習の手順
athlete_events_sparkの型を確認します。athlete_events_sparkのスキーマを確認します。- 年ごとにグループ化したオリンピアンの平均年齢を出力します。ここでは Spark はまだ実際の計算を行っていない点に注意してください。これは「遅延評価」と呼べます。
- 前の結果に対して
.show()を呼び出し、平均年齢を実際に計算して表示します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Print the type of athlete_events_spark
print(____(athlete_events_spark))
# Print the schema of athlete_events_spark
print(athlete_events_spark.____())
# Group by the Year, and find the mean Age
print(athlete_events_spark.____('Year').mean(____))
# Group by the Year, and find the mean Age
print(athlete_events_spark.____('Year').mean(____).____())