Databricks

Databricks: Spark DataFrameでピボットグラフを作る

こんにちは、エクスチュアの権泳東(コン・ヨンドン)です。

今回はDatabricksにおける、Spark DataFrameのピボット機能を使った集計方法についてです。

DataFrameを作成する

まずはサンプルデータでDataFrameを作成します。
公開データのPopular Baby NamesのCSVを使います。
このデータは、「ニューヨーク市で生まれた新生児の名前」を出生年別・人種別・性別でまとめたパブリックデータです。

Databricksにデータをアップロードしてから、下記のコードでDataFrameを作成します。

import org.apache.spark.sql.functions._
import org.apache.spark.sql.types._

val myschema = StructType(
  Array(
    StructField("Year of Birth", IntegerType, true),
    StructField("Gender", StringType, true),
    StructField("Ethnicity", StringType, true),
    StructField("Child's First Name", StringType, true),
    StructField("Count", IntegerType, true),
    StructField("Rank", IntegerType, true)
  )
)

val babyname = spark.read.option("header", true)
.schema(myschema)
.csv("/FileStore/tables/Popular_Baby_Names.csv")

dispaly(babyname)

DataFrameの中身が表示されました。

Popular Baby NamesのCSVをロード

このデータを使って、
2013年〜2016年に生まれた「男の子」の名前でピボットを作ります。

pivotメソッドでピボットテーブル化

ピボットテーブルを作るにはその名もズバリpivotメソッドを使います。
groupByのあとに、さらに軸にしたいカラムをpivotで指定します。

val result = babyname.filter('Gender === "MALE")
.filter($"Year of Birth" > 2012)
.groupBy("Child's First Name")
.pivot("Year of Birth")
.sum("Count")

display(result.orderBy($"2016".desc).limit(10))

2016年の出生数を降順でソートしてトップ10だけを表示してます。

pivotメソッドを使う

ピボットグラフを作成する

最後にテーブルをグラフ化します。
グラフボタンを押して「Bar」を選んだ後、「Plot Option」を開いて下記のように設定します。

Keys: Child’s First Name
Value: 2013, 2014, 2015, 2016
Display type: Stacked Bar chart

積み上げ棒グラフの設定

Applyをクリックすると、グラフが描画されて完成です。

ピボットグラフの完成

Databricksを使えば、ETLから可視化までをScala/Pythonで一貫して作業出来るのでメソッドさえ覚えてしまえばとてもスムーズな分析が可能です。

弊社はデジタルマーケティングからビッグデータ分析まで幅広くこなすデータ分析のプロ集団です。
Databricksのコンサルティング/導入支援についてのお問合わせはこちらからどうぞ。

ブログへの記事リクエストはこちらまでどうぞ。

関連記事

  1. Databricks

    Databricks: Spark DataFramesをJDBCから作成する

    こんにちは、エクスチュアの権泳東(コン・ヨンドン)です。今回は…

  2. Linux

    無料のWindows10仮想マシンをEdge/IE11検証用途で使う

    こんにちは、エクスチュアの権泳東(コン・ヨンドン)です。twi…

  3. Adobe Analytics

    AdobeAnalytics: スクロールで目標に到達したらカスタムリンク

    こんにちは、エクスチュアの権泳東(コン・ヨンドン)です。Twitt…

  4. Adobe Analytics

    Adobe AnaltyicsとGoogle Analytics の「生Webビーコン」をBigQu…

    こんにちは、エクスチュアの権泳東(コン・ヨンドン)です。Twi…

  5. Adobe Analytics

    AdobeAnalytics: GTMのdataLayerをAdobeAnalyticsの処理ルール…

    こんにちは、エクスチュアCTOの権です。Twitter:@ex…

最近の記事

  1. GTMのdataLayerをAdobeAnalyticsの「…
  2. Metabase: カスタムマップで日本地図を追加する
  3. オープンソースBI「Metabase」の使い勝手が丁度良かっ…
  4. OWOX BI: GoogleSheetsアドオンでBigQ…
  5. Adobe AEP SDK: リバースプロキシを使ったアプリ…
  1. Adobe Analytics

    Metabase: カスタムマップで日本地図を追加する
  2. Google Cloud Platform

    Google Compute EngineのUbuntu VMにスワップ領域を作…
  3. Amazon Web Services

    Databricks Community Editionを使ってApache S…
  4. Tableau

    Tableau:2つの値の比較に便利な「ダンベルチャート」を作る
  5. GA 360 Suite

    GoogleDataStudio:GoogleAnalyticsのカスタムチャネ…
PAGE TOP