データの視覚化
データ クエリの結果を分析する最も直感的な方法の 1 つは、それらをグラフとして視覚化することです。 Azure Databricks のノートブックは、ユーザー インターフェイスでグラフ機能を提供します。その機能で必要なものが提供されない場合は、多くの Python グラフィックス ライブラリのいずれかを使用して、ノートブックにデータの視覚化を作成して表示できます。
組み込みのノートブック グラフの使用
Azure Databricks の Spark ノートブックでデータフレームを表示したり、SQL クエリを実行したりすると、結果がコード セルの下に表示されます。 既定では、結果はテーブルとしてレンダリングされますが、次に示すように、結果を視覚化として表示したり、グラフにデータを表示する方法をカスタマイズしたりすることもできます。
視覚化の種類
これらは、Databricks で作成できるさまざまな種類の視覚化であり、それぞれが特定の種類のデータ分析情報に適しています。 重要なポイント:
横棒グラフ/折れ線グラフ/面グラフ: 時間の経過に伴う傾向、カテゴリ比較、またはその両方を示します。 メトリックがどのように進化するかを確認するのに役立ちます。
円グラフ: 全体の比例部分を表示する場合に適しています (時系列の場合は表示されません)。
ヒストグラム: 数値データの分布を表示します (値がどのように分散され、クラスター化されるか)。
ヒートマップ: 2 つのカテゴリ軸を視覚化し、数値で色分けするのに役立ち、グループ間のパターンを確認するのに役立ちます。
散布図/バブルチャート:2つの(または複数の)数値変数の間の関係を示す。バブルを使用すると、サイズまたは色を 3 次元として使用できます。
ボックス プロット: カテゴリ間の分布 (スプレッド、四分位数、外れ値) を比較します。
複合グラフ: 同じグラフ内の線と棒の組み合わせ。異なるメトリックと異なるスケールを比較する場合に役立ちます。
ピボット テーブル: クロスタブ分析に役立つテーブル形式 (SQL PIVOT/GROUP BY など) でデータの整形と集計を行うことができます。
特殊な種類: コーホート分析 (時間の経過と共にグループを追跡する)、カウンター表示 (単一の概要メトリックをターゲット指標と比較して強調)、ファネル、マップの視覚化 (コロプレス、マーカー)、ワードクラウドなど。これらはより専門的です。
ノートブックの組み込みの視覚化機能は、データをすばやく視覚的に集計する場合に便利です。 データの書式設定方法をより詳細に制御する場合や、クエリで既に集計した値を表示する場合は、グラフィックス パッケージを使用して独自の視覚化を作成することを検討する必要があります。
コードでのグラフィックス パッケージの使用
コードでデータ視覚化を作成するために使用できるグラフィックス パッケージは数多くあります。 特に、Python では多数のパッケージがサポートされています。それらのほとんどは、基本 の Matplotlib ライブラリ上に構築されています。 グラフィックス ライブラリからの出力をノートブックにレンダリングできるため、コードを組み合わせて、インライン データ視覚化とマークダウン セルを使用してデータを取り込んで操作し、コメントを提供できます。
たとえば、次の PySpark コードを使用して、このモジュールで以前に調査した架空の製品データのデータを集計し、Matplotlib を使用して集計データからグラフを作成できます。
from matplotlib import pyplot as plt
# Get the data as a Pandas dataframe
data = spark.sql("SELECT Category, COUNT(ProductID) AS ProductCount \
FROM products \
GROUP BY Category \
ORDER BY Category").toPandas()
# Clear the plot area
plt.clf()
# Create a Figure
fig = plt.figure(figsize=(12,8))
# Create a bar plot of product counts by category
plt.bar(x=data['Category'], height=data['ProductCount'], color='orange')
# Customize the chart
plt.title('Product Counts by Category')
plt.xlabel('Category')
plt.ylabel('Products')
plt.grid(color='#95a5a6', linestyle='--', linewidth=2, axis='y', alpha=0.7)
plt.xticks(rotation=70)
# Show the plot area
plt.show()
Matplotlib ライブラリでは、データを Spark データフレームではなく Pandas データフレームに含める必要があるため、 toPandas メソッドを使用して変換します。 次に、コードによって、指定したサイズの図形が作成され、カスタム プロパティ構成で横棒グラフがプロットされてから、結果がプロットされます。
コードによって生成されるグラフは、次の図のようになります。
Matplotlib ライブラリを使用して、さまざまな種類のグラフを作成できます。または、必要に応じて、 Seaborn などの他のライブラリを使用して、高度にカスタマイズされたグラフを作成できます。
注
Matplotlib ライブラリと Seaborn ライブラリは、クラスターの Databricks ランタイムに応じて、Databricks クラスターに既にインストールされている可能性があります。 インストールされていない場合、またはまだインストールされていない別のライブラリを使用する場合は、クラスターに追加できます。 詳細については、Azure Databricks ドキュメントの クラスター ライブラリ を参照してください。