3
1

DatabricksにおけるYamathonデータの可視化

Last updated at Posted at 2023-10-22

昨日はこちらのイベントに参加してきました。

ヤマソンは、2人~4人のチームが東京を歩いたり走ったりするために競う募金活動です。

有名なJR山手線の30の駅すべてを12時間以内に訪れます。

一応、日常的にジョギングはしているのですがこれだけの長丁場は初です。結果完走できました。

IMG_9830.jpg

これだけで終わると普通のブログになってしまうので、完走を記念してデータの可視化をします。というか筋肉痛や疲労で難しいこと考えられないので詳細な分析はできないです。

データのダウンロード

iPhone持って歩いていたのでGoogle MapsのTimelineとしては記録されています。これを以下のChrome拡張でダウンロードします。

なお、Begin Timeなどの時刻タイプの列はいくつか存在しており、それぞれフォーマットが異なるので注意してください。列にはLatitudeLongitudeを含めるようにします。

こんな感じのCSVです。本当はもう少し粒度の細かいデータが欲しいところですが。
Screenshot 2023-10-22 at 19.41.46.png

データのアップロード

Databricksのサイドメニューから新規 > データの追加を選択します。CSVをドラッグ&ドロップします。
Screenshot 2023-10-22 at 19.42.02.png

テーブルを作成するカタログとデータベース(スキーマ)を選択します。この時点でもデータ型を指定できるのですが、除外しなくてはいけない文字列などがあるのでデフォルトのままでテーブルを作成します。

テーブルの確認

カタログエクスプローラでテーブルを確認します。せっかくなのでAIコメントも承認しておきます。
Screenshot 2023-10-22 at 19.43.11.png

データも確認しておきます。Distance in Meterにカンマやmが入っていたりとなかなか前処理が大変そうです。
Screenshot 2023-10-22 at 19.44.07.png

クエリーとダッシュボードの作成

最近リリースされたLakeviewを使ってもいいのですが、残念なことにまだ地図がサポートされていません。なので、素直にDatabricks SQLのクエリーとダッシュボードを使います。

不要な文字列を除外してあるべきデータ型に変化します。時間もタイムゾーンなどの処理をしなくてはいけないのですが、(疲れているので)今日はスキップします。

SQL
SELECT
  `Begin Time`,
  Name,
  CAST(Latitude AS FLOAT),
  CAST(Longitude AS FLOAT),
  CAST(
    REPLACE(TRIM(" m", `Distance in Meter`), ",", "") AS INTEGER
  ) AS Distance_meter,
  CAST(
    REPLACE(TRIM(" sec", `Duration In Seconds`), ",", "") AS INTEGER
  ) AS Duration_sec
FROM
  takaakiyayoi_catalog.default.timeline_viewer_oct_21_2023_oct_22_2023

Screenshot 2023-10-22 at 20.24.02.png

あとは、駅のマーカーを示す地図と移動時間・移動距離の散布図を作ります。
Screenshot 2023-10-22 at 20.13.45.png
Screenshot 2023-10-22 at 20.13.59.png

これをダッシュボードにまとめます。移動距離と移動時間は相関しているようですが、一部外れ値がありますね。あとで深掘りしたいところ。
Screenshot 2023-10-22 at 20.14.25.png

これ以外にも時間帯と移動速度の相関といった分析観点がありそうです。ただ、今日はもう寝ます(年寄りは二日目の筋肉痛の方がキツい)。

Databricksクイックスタートガイド

Databricksクイックスタートガイド

Databricks無料トライアル

Databricks無料トライアル

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1