SparkとTableau Desktopを使用して洞察に富んだダッシュボードを作成する
使用するツールはSparkとTableau Desktopで、洞察に富んだダッシュボードを作成します
Tableau Desktopツールを使用した大規模データ可視化の自動化
1. はじめに
データの視覚化は、大規模データセットから有用なビジネスインサイト(トレンド、パターン、外れ値、相関関係など)を得るためのデータ分析において広く採用されている手法です。最近、私はPythonでWebアプリケーション向けのインタラクティブで洞察に富んだデータ可視化ダッシュボードを開発するためのSpark、Plotly、およびDashの使用に関するソフトウェア開発手法を紹介しました[1]。
[1] と同様に、この論文では、プログラミングをせずにCloudデータレイクの大規模データセットから洞察に富んだダッシュボードを作成するために、[2] で使用されたオープンソースのデータセットを使用してSparkとTableau Desktop [3] の使用方法を示します。
図1は作業フローの高レベルな概要を示しています。以下の主要なステップで構成されています。
- Tableau DesktopをSparkに接続してダッシュボードの作成
- Cloudデータレイクからデータセットをクエリする
- ロードされたデータセットからデータ可視化グラフを作成する
- 個々のグラフからダッシュボードを作成する
- ダッシュボードをTableauサーバーに公開して共有する
2. Tableau DesktopをSparkに接続する
[4]で説明されているように、Spark SQLを分散クエリエンジンとして使用するためのJDBC/ODBC [5]を使用してTableau Desktopを分散Spark SQLエンジンに接続するためには、以下の手順に従うことができます。
- Hadoopのインストール
- Hiveのセットアップ
- MySQLのセットアップ
- Sparkのセットアップ
- Tableau Desktopのセットアップ
3. Cloudデータレイクからデータセットをクエリする
Tableau Desktopが分散Spark SQLエンジンに正常に接続された場合、デフォルトのスキーマに移動し、Hive Hadoopクラスターテーブルを表示することができるはずです[4]。
Tableau Desktopでダッシュボードを作成する観点からは、Hive HadoopクラスターからロードされたテーブルとローカルのMicrosoft Excelファイルからロードされたテーブルとの間には違いがありません。この論文では、便宜上、[2]のデータセットのcsvファイルから変換されたローカルのExcelファイルを使用してデモンストレーションの目的で無料版のTableau Desktop Publicが使用されます。
4. データ可視化グラフの作成
データ可視化ダッシュボードを作成する前に、まず個別の可視化グラフを作成する必要があります。
Tableau Desktopを使用してさまざまなタイプのグラフを作成することができます。[1]で説明されているように、一部のグラフは連続的な数値特徴を可視化するのに適しており、他のグラフは離散的なカテゴリ特徴を可視化するのに適しています。
[1]と同様に、この論文では、デモンストレーションの目的でTableau Desktopを使用して次のような一般的な図を作成します。
- 数値特徴用グラフ:散布図、ヒストグラムチャート、折れ線グラフ
- カテゴリ特徴用グラフ:棒グラフ、折れ線グラフ、円グラフ
4.1 数値特徴用グラフ
Tableau Desktopでは、シンボル#を使用して数値特徴を示します。この節では、数値特徴用の次の3つの一般的なグラフを作成する方法を示します。
- 散布図
- ヒストグラムチャート
- 折れ線グラフ
4.1.1 散布図
数値特徴のペアに対して、散布図は各特徴値のペアを座標として使用して2D平面上に点を描画します。例として、[1]と同様に、図2は21歳から30歳の人々のPatient IDとAdmission Depositという2つの数値特徴の散布図を示しています。属性のAdmissionのタイプはカラーコーディングに使用されます。
散布図を作成するためには、以下の手順に従うことができます:
- 特徴量「Patientid」をドラッグして「Columns shelf」にドロップします
- 特徴量「Admission Deposit」をドラッグして「Rows shelf」にドロップします
- 特徴量「Type of Admission」をドラッグして、「Marks Card」の「Color property」にドロップします
- 「Marks Card」のドロップダウンをクリックして、「Circle」を選択します
- 特徴量「Age」を右クリックし、「show filter」を選択し、「21-30」を選択します
この散布図は、緊急および外傷患者のほとんどは21-30歳であり、預金額は$3,000から$6,000の範囲にあります。
4.1.2 ヒストグラムチャート
Tableau Desktopでは、ヒストグラムは棒グラフとして扱われます。そのため、列の数値特徴量はビニングによってカテゴリカルに変換され、行の数値特徴量は合計などの集計が必要です。
図3のヒストグラムを作成するためには、以下の手順に従うことができます:
- 数値特徴量「Patientid」を右クリックし、「ビンの作成」を選択して、新しい特徴量「Patientid(bin)」を作成します
- 新しい特徴量「Patientid(bin)」をドラッグして「Columns shelf」にドロップします
- 数値特徴量「Admission Deposit」をドラッグして「Rows shelf」にドロップし、ドロップされた特徴量をクリックして「SUM」の集計を選択します
- カテゴリカル特徴量「Type of Admission」をドラッグして、「Marks Card」の「Color property」にドロップします
- 「Marks Card」のドロップダウンをクリックして、「Bar」を選択します
- 特徴量「Age」を右クリックし、「show filter」を選択し、「21-30」を選択します
このヒストグラムは、21-30歳の緊急患者の入院総額が最も小さく、緊急患者の入院総額が最も大きいというビジネスインサイトを示しています。
4.1.3 折れ線グラフ
散布図の作成と同様に、以下の手順に従って図4の折れ線グラフを作成することができます:
- 特徴量「Patientid」をドラッグして「Columns shelf」にドロップします
- 特徴量「Admission Deposit」をドラッグして「Rows shelf」にドロップします
- 特徴量「Type of Admission」をドラッグして、「Marks Card」の「Color property」にドロップします
- 「Marks Card」のドロップダウンをクリックして、「Line」を選択します
- 特徴量「Age」を右クリックし、「show filter」を選択し、「21-30」を選択します
散布図と同様に、この折れ線グラフは、21-30歳の緊急および外傷患者の大部分が$3,000から$6,000の範囲の預金を持っているというビジネスインサイトを示しています。
4.2 カテゴリカル特徴量のグラフ
Tableau Desktopでは、カテゴリカル特徴量を示すために「Abc」という記号が使用されます。このセクションでは、Tableau Desktopを使用してカテゴリカル特徴量の値のカウントに対して以下の3つの一般的なグラフを作成する方法を示します:
- 棒グラフ
- 折れ線グラフ
- 円グラフ
4.2.1 棒グラフ
例として、以下の手順に従ってカテゴリカル特徴量「Stay」の値のカウントに対する棒グラフを作成することができます:
- StayというフィーチャーをドラッグしてColumns shelfにドロップします
- 同じStayフィーチャーをRows shelfにドラッグしてドロップし、ドロップしたフィーチャーをクリックして集計Countを選択します
- Marks CardのドロップダウンをクリックしてBarを選択します
- Ageフィーチャーを右クリックし、フィルターを表示して21–30のみを選択します
- Marks CardのColorプロパティをクリックして紫色を選択します
このバーチャートは、21–30歳の患者の場合、他の入院期間と比較して、より多くの患者が21–30日間入院しました。
4.2.2 折れ線グラフ
バーチャートと同様に、以下の手順に従ってカテゴリカルフィーチャーStayの値のカウントの折れ線グラフ(図6)を作成できます:
- StayフィーチャーをドラッグしてColumns shelfにドロップします
- 同じStayフィーチャーをRows shelfにドラッグしてドロップし、ドロップしたフィーチャーをクリックして集計Countを選択します
- Marks CardのドロップダウンをクリックしてLineを選択します
- Ageフィーチャーを右クリックし、フィルターを表示して21–30のみを選択します
- Marks CardのColorプロパティをクリックして紫色を選択します
バーチャートと同様に、この折れ線グラフも、21–30歳の患者の場合、他の入院期間と比較して、より多くの患者が21–30日間入院していることを示しています。
4.2.3 円グラフ
円グラフの作成は、折れ線グラフやバーチャートの作成ほど直感的ではありません。
以下の手順に従ってカテゴリカルフィーチャーStayの値のカウントの円グラフ(図8)を作成できます:
- StayフィーチャーをドラッグしてColumns shelfにドロップします
- 同じStayフィーチャーをRows shelfにドラッグしてドロップし、ドロップしたフィーチャーをクリックして集計Countを選択します
- Ageフィーチャーを右クリックし、フィルターを表示して21–30のみを選択します
- グラフシートの右上隅にあるShow Meをクリックし、円グラフのアイコンを選択します。小さな円グラフが表示されます(図7参照)。
- 円グラフのサイズを増やすために、Marks CardのSizeプロパティを選択し、円グラフの境界ボックスを選択してドラッグします
- 集計フィーチャーCNT(Stay)をMarks CardのLabelプロパティにドラッグしてドロップします
上記の手順に従った後の最終的な円グラフが図8に示されています。
バーチャートや折れ線グラフと同様に、この円グラフも、21–30歳の患者の場合、他の入院期間と比較して、より多くの患者(合計2,197人)が21–30日間入院していることを確認しています。
5. ダッシュボードの作成
個別のグラフが作成されたら、個別のグラフを選択してダッシュボードに組み合わせることができます。
5.1 数値特徴のペアの可視化のためのダッシュボード
次の手順に従って、数値特徴のPatientidと入院費のペアの可視化のためのダッシュボードを作成できます。
ステップ1: ダッシュボードメニューを選択し、新しいダッシュボードを選択します
ステップ2: 以下の作成したグラフシートを1枚ずつドラッグして新しいダッシュボードシートにドロップします:
- 数値特徴のサンプル散布図
- 数値特徴のサンプルヒストグラム
- 数値特徴のサンプル折れ線グラフ
図9は新しく作成されたダッシュボードを示しています。
5.2 カテゴリ値のカウントを可視化するためのダッシュボード
次の手順に従って、カテゴリ特徴Stayの値のカウントを可視化するためのダッシュボードを作成できます。
ステップ1: ダッシュボードメニューを選択し、新しいダッシュボードを選択します
ステップ2: 以下の作成したグラフシートを1枚ずつドラッグして新しいダッシュボードシートにドロップします:
- カテゴリ特徴のバー
- カテゴリ特徴の折れ線グラフ
- カテゴリ特徴の円グラフ
図10は新しく作成されたダッシュボードを示しています。
6. ダッシュボードの公開
ダッシュボードが作成されたら、共有するためにTableau Serverに公開できます。
以下の3種類のサーバがあります:
- Tableau Public
- Tableau Server
- Tableau Cloud
本稿で作成したダッシュボードは、無料のTableau Desktop Publicを使用して作成されたため、Tableau Publicにのみ公開できます。
[6]の公開手順に従って、関連データセットを含むダッシュボードをTableau Publicサーバに公開できます。
7. 結論
Tableauは複雑なアーキテクチャを持つ多層の視覚データ分析プラットフォームです。この論文では、SparkをTableauと統合し、プログラミングなしでクラウド上の大規模データレイク(たとえばHadoop Hive)からデータをクエリする方法を紹介し、Tableau Desktopを使用して読み込まれたデータセットから洞察に富んだダッシュボードを作成する方法を示しました。
ダッシュボードの作成と共有ツールとして、Tableau Desktopはさまざまな方法で視覚化グラフを作成することができます。数値特徴のペアを可視化するためのシンプルなシナリオと、カテゴリ特徴の値のカウントを可視化するためのシンプルなシナリオに焦点を当てることで、Tableau Desktopを迅速に学ぶのに役立つ論文です。
参考文献
[1] Yu Huang, Developing Interactive and Insightful Dashboards with Spark and Plotly Dash
[2] Yu Huang, Predicting Hospitalized Time of Covid-19 Patients
[3] チュートリアル: Tableau Desktopの始め方
[4] Apache SparkとTableauのセットアップガイド
[5] 分散SQLエンジン
[6] 調査結果を共有する
We will continue to update VoAGI; if you have any questions or suggestions, please contact us!
Was this article helpful?
93 out of 132 found this helpful
Related articles