Databricks

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

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

今回はDatabricks のDataFrameを、JDBC接続から作成する方法について紹介します。
RDBMS内のデータをDatabricksのDataFrameとしてロードしたい場合、JDBC接続を使えば簡単です。
針に糸を通す時に「アレ」を使えば簡単なのと同じです(謎

Databricks + MySQLで試す

例として、MySQLのSakilaサンプルDBをロードします。

まずはJDBC接続URLを宣言します。

val jdbcHostname = "203.0.113.1" //ホスト名
val jdbcPort = 3306 //ポート番号
val jdbcDatabase = "sakila" //データベース名
val jdbcUrl = s"jdbc:mysql://${jdbcHostname}:${jdbcPort}/${jdbcDatabase}"

JDBC URLを作成

次に、java.utilPropertiesを使って認証情報をセットします。

import java.util.Properties
val connectionProperties = new Properties()
val jdbcUsername = "ユーザー"
val jdbcPassword = "パスワード"
connectionProperties.put("user", s"${jdbcUsername}")
connectionProperties.put("password", s"${jdbcPassword}")

認証情報をセット

さて、いよいよjava.sql.DriverManagerを使って接続します。

import java.sql.DriverManager
val connection = DriverManager.getConnection(jdbcUrl, jdbcUsername, jdbcPassword)

DBに接続

DBに接続出来ました。
試しに「film」テーブルをロードします。

val film = spark.read.jdbc(jdbcUrl, "film", connectionProperties)

テーブルをロード

次は、テーブルのスキーマを表示してみましょう。

film.printSchema()

スキーマを表示

この「film」テーブルから film_id カラムと、 title カラムを表示します。
rating が「G」に等しい、という条件も付加します。

display(film.select('film_id, 'title).filter('rating === "G"))

Scalaでは、カラム名の前にシングルクオートを一つ付けるだけでカラムを呼び出せます。
1文字だけタイプすればいいので、とてもラクです。Pythonでは出来ません。

selectで抽出

SakilaサンプルDBの中身を簡単に表示する事が出来ました。
通常のDataFramesとして操作出来ましたね。

まとめ

今回はJDBCからDataFramesを作成する方法について紹介しました。
RDBMSからデータを直接ロード出来るので便利です。

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

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

ピックアップ記事

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

関連記事

  1. プログラミング

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

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

  2. Adobe Analytics

    Adobe Analytics: SegmentsAPIを使って大量のセグメント設定を作成・更新する…

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

  3. Google Cloud Platform

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

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

  4. Adobe Analytics

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

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

  5. Adobe Analytics

    Adobe AEP SDKをTypeScriptで開発したReactNativeアプリに実装する

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

  6. Google Apps Script(GAS)

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

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

最近の記事

  1. LangChainのソースコードから実装を見てみる(Chat…
  2. Tableau×Teams連携
  3. AIを使ったマーケティングゲームを作ってみた
  4. Snowflakeや最新データ基盤が広義のマーケティングにも…
  5. 回帰分析はかく語りき Part3 ロジスティック回帰
  1. Adobe Cloud Platform Auditor

    AdobeSummit 2020レポート: “Connecting Experi…
  2. Adobe Analytics

    異常値検出とは-Adobe Analyticsの指標説明
  3. ブログ

    「Power BI」を使ってみよう!
  4. Adobe Analytics

    Adobe Analyticsリリース情報:ワークスペースで複数RSが使えるよう…
  5. Adobe Dynamic Tag Manager

    【Adobe Analytics,Launch】進化するDebugger
PAGE TOP