Databricks

Databricks: Delta Lakeを使ってみる

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

今回はDatabricksで使えるストレージレイヤーである「Delta Lake」について説明します。
Data Lakeじゃなくて、De*l*ta Lakeです。デルタレイク。

DatabricksにCSVをロードしてDataFrameを作っていたら、実行結果の下にNoticeが出てきました。

何やらNoticeが出てきた

こう書いてあります。

Accelerate queries with Delta: This query contains a highly selective filter. To improve the performance of queries, convert the table to Delta and run the OPTIMIZE ZORDER BY command on the table.

「Deltaを使ってクエリを加速しよう」と言ってますね。
早速試してみます。

Delta Lakeとは?

Introduction to Delta Lake

Delta Lakeとは、Apache Sparkで使えるスケーラブルなストレージレイヤーです。
ACIDトランザクションとバージョニングもサポートしてます。

DataFrameをDeltaフォーマットで書き出す

まずはDataFrameをDeltaデータとしてファイルシステムに書き出す必要があります。
DataFrameをformatで「delta」を指定して、saveするだけです。

df.write.format("delta").save("/delta/mydata")

Deltaフォーマットで書き出す

DeltaデータからDataFrameを作る

今度は、先程ファイルシステムに書き出したDeltaデータを使ってDataFrameを作成します。

val df_delta = spark.read.format("delta").load("/delta/mydata")

DeltaデータからDataFrameを作成

Delta DataFrameにクエリを実行する

では、Deltaデータから作成したDataFrameを操作します。
なお、元データはKaggleの2015 Flight Delays and Cancellationsを使ってます。
目的地を出発地のある州別にグルーピングします。

通常のDataFrameと同じメソッドを使えます。

val df_delta2 = df_delta.filter('count > 5000)
.groupBy('origin_state).agg(collect_list('dest_city).as("dest_cities"))
.withColumn("dest_city_count", size('dest_cities))

Delta DataFrameを操作する

データ量が少ないデモデータで実施すると速さの違いを体感出来ませんが、PB規模のビッグデータに対して高速なクエリを実行できる事が期待される機能です。

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

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

関連記事

  1. Adobe Analytics

    AA + GA : SafariのITP2.1に備えてphpでクッキーを永続化する

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

  2. Adobe Analytics

    AdobeAnalyticsでReactNativeアプリを計測する

    この記事は2018年12月7日現在の情報を元にしているので内容が古いで…

  3. Amazon Web Services

    Databricks Community Editionを使ってApache Sparkを無料で学ぶ…

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

  4. Google BigQuery

    GCP: 今月のGCP課金額をslackに自動的に書き込む

    こんにちは、エクスチュアCTOの権です。今回はGCPの課金額を…

  5. Google Cloud Platform

    Node.js+GAE: 日本語自然文を形態素解析してネガポジ判定をする

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

  6. Adobe Analytics

    Azure DatabricksでAdobe AnalyticsのDatafeedを分析する

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

最近の記事

  1. Databricks: Delta Lakeを使ってみる
  2. Adobe Analytics:計算指標でevents変数を…
  3. Databricks: Spark DataFramesをJ…
  4. Databricks: Spark RDDで使う主なメソッド…
  5. GCPのBQMLを使ってKaggleコンペに挑んでみた(その…
  1. Databricks

    Databricks: Delta Lakeを使ってみる
  2. Adobe Analytics

    Adobe Analytics: Datafeedのログからフォールアウトレポー…
  3. Tableau

    Tableau:分かりやすいLOD – EXCLUDE編
  4. Google Analytics

    Google Analytics StandardのデータをBigQueryで分…
  5. Google Analytics

    Google Tag Manager上でGoogle Analyticsのcli…
PAGE TOP