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. Adobe Analytics

    Adobe Analyticsに入り切らないデータをBigQueryに投入する

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

  2. プログラミング

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

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

  3. Google BigQuery

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

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

  4. Adobe Analytics

    AdobeAnalytics: s.Util.getQueryParam で複数パラメータ同時取得

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

  5. Google Cloud Platform

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

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

  6. Databricks

    databricks:GCPで利用を開始する

    databricksがGCPに対応し、Mark…

最近の記事

  1. Streamlit in SnowflakeによるStrea…
  2. Streamlitを使った簡単なデータアプリケーション作成ガ…
  3. 生成AI機能を活かしたデータカタログ製品「Secoda」を試…
  4. 回帰分析はかく語りき Part2 重回帰分析
  5. 第14回関西DB勉強会-Snowflake Summit参加…
  1. Adobe Analytics

    Adobe Analytics: BigQuery+Lookerでアトリビューシ…
  2. Cloud Dataflow

    データアナリスト/データエンジニア向けNext19まとめ
  3. Adobe Analytics

    Adobe Analytics: DWHレポートの日付列をBigQueryのDa…
  4. Pardot

    Pardotの初期セットアップをする① DNSレコード設定とトラッカードメイン設…
  5. Tableau

    あなたのTableau(タブロー)が重い理由【パフォーマンスの記録】
PAGE TOP