始める無料で始める

集約処理

.min().max().count() のような一般的な集約メソッドは、いずれも GroupedData のメソッドです。これは DataFrame の .groupBy() メソッドを呼び出すことで作成されます。これが具体的に何を意味するかは、このあと数個の演習で学びます。今は、これらの関数を使うには DataFrame に対してそのメソッドを呼ぶだけで十分です。たとえば、DataFrame df の列 col の最小値を求めるには、次のようにします。

df.groupBy().min("col").show()

これはまず GroupedData オブジェクトを作成(そのため .min() メソッドが使えます)し、次に col の最小値を求め、その結果を DataFrame として返します。

それでは、実際に集約処理をやってみましょう!

ワークスペースにはすでに spark という SparkSession と、Spark DataFrame の flights が用意されています。

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

PySpark入門

コースを見る

演習の手順

  • PDX を出発したフライトのうち、最短距離(distance)のフライトの距離を、まず .filter() で絞り込み、続いて .min() メソッドで求めてください。フィルタ条件は SQL 文字列ではなく、列を直接参照して指定します。
  • SEA を出発したフライトのうち、最長時間(time)のフライトの所要時間を、filter() で絞り込み、続いて .max() メソッドで求めてください。フィルタ条件は SQL 文字列ではなく、列を直接参照して指定します。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# Find the shortest flight from PDX in terms of distance
flights.filter(____.____ == ____).groupBy().____(____).show()

# Find the longest flight from SEA in terms of air time
flights.filter(____).groupBy().____.show()
コードを編集して実行