始める無料で始める

列の選択

SQL の SELECT に相当する Spark のメソッドは .select() です。このメソッドは複数の引数を取り、選択したい列ごとに 1 つずつ指定します。引数には、列名を文字列で渡す方法(列ごとに 1 つの文字列)と、df.colName 構文を使って列オブジェクトを渡す方法があります。列オブジェクトを渡すと、.withColumn() 内と同様に、その列に対して加算や減算などの演算を行い、含まれるデータを変更できます。

.select().withColumn() の違いは、.select() は指定した列だけを返すのに対して、.withColumn() は定義した列に加えて DataFrame のすべての列を返す点です。データの前処理では、不要な列を最初に落としておくと、その後の操作で余分なデータを抱えずに済むので効率的です。この場合は .withColumn() ではなく .select() を使います。

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

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

PySpark入門

コースを見る

演習の手順

  • 列名を文字列で渡して、flights から "tailnum""origin""dest" 列を選択し、selected1 として保存してください。
  • df.colName 構文を使って "origin""dest""carrier" 列を選択し、用意されている 2 つのフィルタ(filterAfilterB)を両方適用して、SEA 発 PDX 行きのフライトだけに絞り込み、selected2 として保存してください。

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

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

# Select the first set of columns
selected1 = flights.select("____", "____", "____")

# Select the second set of columns
temp = flights.select(____.____, ____.____, ____.____)

# Define first filter
filterA = flights.origin == "SEA"

# Define second filter
filterB = flights.dest == "PDX"

# Filter the data, first by filterA then by filterB
selected2 = temp.filter(____).filter(____)
コードを編集して実行