0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Databricks SQL Connector for Pythonを試してみる

Posted at

こちらのコネクターを実際に試してみます。

Databricks SQL Connector for PythonはDatabricksクラスターやDatabricks SQLウェアハウスでSQLコマンドを実行するために、Pythonコードを使用できるPythonライブラリです。pyodbcのようなPythonライブラリと同じように簡単にセットアップ、使用することができます。

要件

準備

以下ではSQLウェアハウスを使用するケースを説明します。

  1. SQLウェアハウスの接続の詳細サーバーのホスト名HTTPパスをコピーしておきます。
    Screenshot 2023-02-26 at 20.06.28.png
  2. パーソナルアクセストークンをコピーしておきます。
  3. 開発用マシンでpip install databricks-sql-connectorを実行してコネクターをインストールします。

コネクターによる接続

  1. ターミナルで環境変数を設定します。

    Bash
    export DATABRICKS_HOST=<Databricksワークスペースのホスト名>
    export DATABRICKS_HTTP_PATH=<上でコピーしたHTTPパス>
    export DATABRICKS_TOKEN=<上でコピーしたパーソナルアクセストークン>
    
  2. VS Codeを起動します(Python実行環境であれば何でも構いません)。

    Bash
    code .
    
  3. 以下のPythonコードを実行します。

    Python
    import os
    from databricks import sql
    
    with sql.connect(server_hostname = os.getenv("DATABRICKS_HOST"),
                     http_path       = os.getenv("DATABRICKS_HTTP_PATH"),
                     access_token    = os.getenv("DATABRICKS_TOKEN")) as connection:
    
      with connection.cursor() as cursor:
        cursor.execute("SELECT * FROM default.diamonds LIMIT 5")
        result = cursor.fetchall()
    
        for row in result:
          print(row)
    
  4. クエリー結果が表示されます。
    Screenshot 2023-02-26 at 20.12.09.png

注意
nodename nor servname provided, or not knownError during request to serverのようなエラーが発生する場合には、環境変数DATABRICKS_HOSTで指定したホスト名にhttps://や末尾の/が含まれていないことを確認してください。

Databricks 無料トライアル

Databricks 無料トライアル

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?