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のコンサルティング/導入支援についてのお問合わせはこちらからどうぞ。

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

Adobe Analytics:計算指標でevents変数を後付けでパーティシペーションにする前のページ

カプセル化(Encapsulation)って何?次のページ

ピックアップ記事

  1. 最速で理解したい人のためのIT用語集

関連記事

  1. Google BigQuery

    Google Apps Scriptを使ってスプレッドシートからBigQueryのテーブルを更新する…

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

  2. プログラミング

    Node.jsでCSVファイル内のダブルクオートで囲まれたカラム内のカンマを除去する

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

  3. Databricks

    databricks:GCPで利用を開始する

    databricksがGCPに対応し、Mark…

  4. Adobe Analytics

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

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

  5. Google Apps Script(GAS)

    【Google App Script】GASを利用してslackに投稿するbotを作る

    こんにちは、エクスチュアの岩川です。業務でSlackを使用さ…

  6. Adobe Analytics

    Adobe AEP SDK: リバースプロキシを使ったアプリ計測検証方法

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

カテゴリ
最近の記事
  1. AtScale Developer Editionでセマンテ…
  2. 真打ち登場LOD ~TableauのEXCLUDE関数を知ろ…
  3. DataformでactAs権限に適合する設定をする
  4. 真打ち登場LOD ~TableauのINCLUDE関数を知ろ…
  5. 真打ち登場LOD ~TableauのFIXED関数を知ろう~…
  1. IT用語集

    AWS(Amazon Web Service)って何?
  2. Google Analytics

    【GA4】推奨イベント・カスタムイベントの設定方法
  3. Amazon Web Services

    パブリックサブネット vs プライベートサブネット
  4. ブログ

    秋とチラシとリードのスコアリング機能
  5. Google Analytics

    Google Analytics4 を知る。
PAGE TOP