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. Google BigQuery

    Big QueryでWindow関数を用いて、累積和を計算する

    こんにちは。エクスチュアでインターンをさせて頂いている中野です。…

  2. Databricks

    Databricksを始める前に覚えておきたいScalaプログラミングの基本

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

  3. Linux

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

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

  4. Databricks

    Databricks: Spark RDDで使う主なメソッド

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

  5. Adobe Analytics

    Adobe AEP SDKでReactNativeアプリを計測する (iOS編)

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

  6. Databricks

    ScalaでDatabricksのDataFrameを扱う

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

カテゴリ

最近の記事

  1. #ai-datacloud勉強会でマルチモーダルに触れた日
  2. Matillion ETLを安全に使いたい人へ送る、SSL対…
  3. LangGraphのソースコードから見る今更聞けないAIエー…
  4. Canva×生成AIで“映える”ダッシュボー…
  5. ベイズとかいうすごいやつ
  1. Adobe Analytics

    BigQuery: テーブルに格納されたURL文字列をKey-ValueのSTR…
  2. Python

    Streamlitを使った簡単なデータアプリケーション作成ガイド
  3. IT用語集

    インポート(Import)とエクスポート(Export)って何?
  4. Mouseflow

    mouseflow vs Microsoft Clarity
  5. Mouseflow

    分析対象を絞り込むフィルター機能
PAGE TOP