Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
学ぶ SQLによるデータのフィルタリングと選択 | データ操作
Databricks基礎:初心者ガイド

SQLによるデータのフィルタリングと選択

メニューを表示するにはスワイプしてください

Note
定義

一時ビューは、DataFrameに対するセッションスコープのエイリアスであり、標準SQL構文を使用してデータを操作することが可能。データの移動や複製は行われず、クラスターのメモリ上にあるDataFrameへのSQLフレンドリーな「ウィンドウ」を提供。

Pythonは複雑なパイプラインの構築に優れている一方、多くのデータプロフェッショナルはデータのフィルタリングや選択において、SQLの可読性と迅速さを好む。Databricksでは、どちらか一方を選ぶ必要はなく、PythonのDataFrameを一時的なSQLテーブル(「ビュー」)に変換し、すぐにクエリを実行することが可能。

一時ビューの作成

DataFrameに対してSQLクエリを実行する前に、SQLエンジンが認識できる名前を付ける必要がある。これには createOrReplaceTempView メソッドを使用。

# Create a SQL view named 'diamond_view' from our existing DataFrame
df.createOrReplaceTempView("diamond_view")

このコマンドの「Replace」部分は重要であり、セルを再実行した場合でもエラーを発生させず、ビューを単純に更新します。このビューは現在のノートブックセッションの間だけ存在します。

%sqlマジックによるクエリ実行

ビューが登録されたので、言語を切り替えることができます。新しいセルの先頭で%sqlマジックコマンドを使用することで、Pythonで行ったのと同じ選択やフィルタを標準SQL構文で実行できます。

%sql
SELECT carat, cut, depth
FROM diamond_view
WHERE price > 500

SQLフィルタリングの強力さ

SQLは複雑なフィルタリングに特に直感的。IN演算子を使用して複数の値でフィルタリングしたり、LIKE演算子でパターンマッチングを行うことが可能。これらの操作はPythonではより冗長になることが多い。

%sql
SELECT * FROM diamond_view
WHERE cut IN ('Good', 'Premium')
  AND clarity LIKE '%V%'

列の選択とエイリアス付け

SQLでは、ASキーワードを使って列を選択し、名前を変更することが簡単にできます。これは、最終的なレポートのヘッダーをよりプロフェッショナルに見せるためによく使われる手法です。

%sql
SELECT 
  carat, 
  cut AS Diamond_Quality, 
  price AS Selling_Price
FROM diamond_view

一時ビューを使う理由

「なぜカタログから直接テーブルをクエリしないのか?」と疑問に思うかもしれません。一時ビューの利点は、Pythonで部分的にクリーンアップや加工を行ったDataFrameをクエリできる点にあります。これにより、データエンジニアリングの「重い処理」はPythonで行い、最終的な分析や可視化はSQLで実施するという橋渡しが可能になります。

1. DataFrame を %sql でクエリする前に実行しなければならない Python メソッドはどれですか?

2. ノートブックをクラスターから切断するかセッションを終了した場合、「一時ビュー」はどうなりますか?

question mark

DataFrame を %sql でクエリする前に実行しなければならない Python メソッドはどれですか?

正しい答えを選んでください

question mark

ノートブックをクラスターから切断するかセッションを終了した場合、「一時ビュー」はどうなりますか?

正しい答えを選んでください

すべて明確でしたか?

どのように改善できますか?

フィードバックありがとうございます!

セクション 4.  5

AIに質問する

expand

AIに質問する

ChatGPT

何でも質問するか、提案された質問の1つを試してチャットを始めてください

セクション 4.  5
some-alt