R言語用Databricks Connect

注

この記事では、Databricks Runtime 13.0 以降用の Databricks Connect と sparklyr との統合ついて説明します。 この統合は、Databricks によって提供されておらず、Databricks によって直接サポート@もされていません。

質問については、 Posit コミュニティにアクセスしてください。

問題を報告するには、GitHubの リポジトリの sparklyr セクションに移動します。

詳細については、Databricks Connect v2 に関するsparklyrを参照してください。

Databricks Connect を使用すると、RStudio Desktop、ノートブック サーバー、その他のカスタム アプリケーションなどの一般的な IDE をAzure Databricks クラスターに接続できます。 「Databricks Connect」を参照してください。

注

Databricks Connect では Apache Spark MLlib との互換性が制限されています。Spark MLlib では RDD が使用されますが、Databricks Connect では DataFrame API のみがサポートされるためです。 sparklyr のすべての Spark MLlib 関数を使用するには、Databricks ノートブックまたはdb_replの関数を使用します。

この記事では、 sparklyr と RStudio Desktop を使用して Databricks Connect for R をすぐに使い始める方法について説明します。

チュートリアル

次のチュートリアルでは、RStudio でプロジェクトを作成し、Databricks Runtime 13.3 LTS 以降の Databricks Connect をインストールして構成し、RStudio から Databricks ワークスペース内のコンピューティングで単純なコードを実行します。 このチュートリアルの補足情報については、Spark Connect および Databricks Connect v2 の sparklyr にある「Databricks Connect」のセクションを参照してください。

このチュートリアルでは、RStudio Desktop と Python 3.10 を使用します。 まだインストールしていない場合は、R および RStudio Desktop と Python 3.10 をインストールしてください。

要件

このチュートリアルを完了するには、次の要件を満たす必要があります。

  • ターゲット Azure Databricks ワークスペースとクラスターは、databricks Connect の Compute 構成の要件を満たしている必要があります。
  • クラスター ID を使用できる必要があります。 クラスター ID を取得するには、ワークスペースでサイドバーの [コンピューティング ] をクリックし、クラスターの名前をクリックします。 Web ブラウザーのアドレス バーで、URL の clusters と configuration の間で文字の文字列をコピーします。

手順 1: 個人用アクセス トークンを作成する

注

Databricks Connect for R 認証では現在、Azure Databricks個人用アクセス トークンのみがサポートされています。

このチュートリアルではAzure Databricks 個人アクセス トークン認証を使用して、Azure Databricks ワークスペースで認証します。

Azure Databricks個人用アクセス トークンが既にある場合は、手順 2 に進みます。 Azure Databricks個人用アクセス トークンが既にあるかどうかわからない場合は、ユーザー アカウント内の他のAzure Databricks個人用アクセス トークンに影響を与えずに、この手順に従うことができます。

個人用アクセス トークンを作成するには、「 ワークスペース ユーザーの個人用アクセス トークンを作成する」の手順に従います。

手順 2: プロジェクトを作成する

  1. RStudio Desktop を開始します。
  2. メイン メニューの File > New Project をクリックします。
  3. [ 新しいディレクトリ] を選択します。
  4. [New Project を選択します。
  5. [ ディレクトリ名 ] と [ プロジェクトをサブディレクトリとして作成] に、新しいプロジェクト ディレクトリの名前と、この新しいプロジェクト ディレクトリを作成する場所を入力します。
  6. [ このプロジェクトで renv を使用する] を選択します。 renv パッケージの更新バージョンをインストールするように求められたら、[はい] をクリックします。
  7. [Create Project をクリックします。

RStudio Desktop プロジェクトを作成する

手順 3: Databricks Connect パッケージとその他の依存関係を追加する

  1. [RStudio Desktop] メイン メニューの [ ツール] > [パッケージのインストール] をクリックします。

  2. [Install from] は [Repository (CRAN)] の設定のままにします。

  3. [パッケージ] には、Databricks Connect パッケージとこのチュートリアルの前提条件となるパッケージの一覧を入力します。

    sparklyr,pysparklyr,reticulate,usethis,dplyr,dbplyr
    
  4. Install to Library を R の仮想環境に設定したままにしてください。

  5. [依存関係のインストール] が選択されていることを確認します。

  6. [ インストール] をクリックします。

Databricks Connect パッケージの依存関係をインストールする

  1. コンソール ビュー ([ビュー] > [フォーカスをコンソールに移動] ) でインストールを続行するように求められたら、「Y」と入力します。 sparklyr および pysparklyr パッケージとそれらの依存関係は、R 仮想環境にインストールされます。

  2. Console ペインで、reticulate を使用して、次のコマンドを実行してPythonをインストールします。 (Databricks Connect for R では、最初に reticulate とPythonをインストールする必要があります)。次のコマンドで、3.10 を、Azure Databricks クラスターにインストールされているPythonバージョンのメジャー バージョンとマイナー バージョンに置き換えます。 このメジャー バージョンとマイナー バージョンを確認するには、 Databricks Runtime リリース ノートのバージョンと互換性に関するクラスターの Databricks Runtime バージョンのリリース ノートの「システム環境」セクションを参照してください。

    reticulate::install_python(version = "3.10")
    
  3. コンソール ウィンドウで、次のコマンドを実行して Databricks Connect パッケージをインストールします。 次のコマンドで、13.3 を、Azure Databricks クラスターにインストールされている Databricks Runtime のバージョンに置き換えます。 このバージョンを見つけるには、Azure Databricks ワークスペースのクラスターの詳細ページの Configuration タブで、Databricks Runtime Version ボックスを参照してください。

    pysparklyr::install_databricks(version = "13.3")
    

    クラスターの Databricks Runtime のバージョンがわからない場合や、それを検索しない場合は、代わりに次のコマンドを実行できます。そうすると、pysparklyr によって、クラスターに対してクエリが実行され、使用する適切な Databricks Runtime のバージョンが判断されます。

    pysparklyr::install_databricks(cluster_id = "<cluster-id>")
    

    指定したバージョンと同じ Databricks Runtime バージョンを持つ別のクラスターに後でプロジェクトを接続する場合、pysparklyr は同じPython環境を使用します。 新しいクラスターの Databricks Runtime バージョンが異なる場合は、新しい Databricks Runtime バージョンまたはクラスター ID を使用して pysparklyr::install_databricks コマンドをもう一度実行する必要があります。

手順 4: ワークスペース URL、アクセス トークン、およびクラスター ID の環境変数を設定する

Databricks では、Azure Databricks ワークスペースの URL、Azure Databricks の個人用アクセス トークン、Azure Databricks のクラスター ID など、機密または変更される可能性のある値を R スクリプトにハードコーディングすることはお勧めしません。 代わりに、ローカル環境変数などにこれらの値を個別に格納します。 このチュートリアルでは、 .Renviron ファイルに環境変数を格納するための RStudio Desktop の組み込みサポートを使用します。

  1. 環境変数を格納する .Renviron ファイルを作成し(このファイルがまだ存在しない場合)、このファイルを編集用に開きます。RStudio デスクトップ コンソールで、次のコマンドを実行します。

    usethis::edit_r_environ()
    
  2. 表示される .Renviron ファイル ([ビュー] > [フォーカスをソースに移動] ) に、次の内容を入力します。 このコンテンツでは、次のプレースホルダーを置き換えます。

    • <workspace-url>をワークスペースごとの URL (たとえば、https://adb-1234567890123456.7.azuredatabricks.net) に置き換えます。
    • <personal-access-token>を、手順 1 のAzure Databricks個人用アクセス トークンに置き換えます。
    • <cluster-id>を、このチュートリアルの要件のクラスター ID に置き換えます。
    DATABRICKS_HOST=<workspace-url>
    DATABRICKS_TOKEN=<personal-access-token>
    DATABRICKS_CLUSTER_ID=<cluster-id>
    
  3. .Renviron ファイルを保存します。

  4. 環境変数を R に読み込む: メイン メニューの [ セッション] > [R の再起動] をクリックします。

Databricks Connect の環境変数を設定する

手順 5: コードを追加する

  1. RStudio Desktop のメイン メニューで、[ ファイル] > [新しいファイル] > [R スクリプト] をクリックします。

  2. 指定されたコードをファイルに入力し、ファイル>保存としてファイルをdemo.Rとして保存します。

    library(sparklyr)
    library(dplyr)
    library(dbplyr)
    
    sc <- sparklyr::spark_connect(
      master     = Sys.getenv("DATABRICKS_HOST"),
      cluster_id = Sys.getenv("DATABRICKS_CLUSTER_ID"),
      token      = Sys.getenv("DATABRICKS_TOKEN"),
      method     = "databricks_connect",
      envname    = "r-reticulate"
    )
    
    trips <- dplyr::tbl(
      sc,
      dbplyr::in_catalog("samples", "nyctaxi", "trips")
    )
    
    print(trips, n = 5)
    

手順 6: コードを実行する

  1. RStudio Desktop の demo.R ファイルのツール バーで、[ ソース] をクリックします。

    RStudio Desktop プロジェクトを実行する

  2. コンソールに、trips テーブルの最初の 5 行が表示されます。

  3. 接続ビュー (表示 > 接続の表示) では、使用可能なカタログ、スキーマ、テーブル、およびビューを調べることができます。

    プロジェクトの [接続] ビュー

手順 7: コードをデバッグする

  1. demo.R ファイルで、print(trips, n = 5) の横にある余白をクリックしてブレークポイントを設定します。
  2. demo.R ファイルのツール バーで、[ソース] をクリックします。
  3. コードがブレークポイントで実行を一時停止すると、[ 環境 ] ビュー ([環境の表示] > 表示) で変数を調べることができます。
  4. メイン メニューの [デバッグ] > [続行] をクリックします。
  5. コンソールに、trips テーブルの最初の 5 行が表示されます。

RStudio Desktop プロジェクトをデバッグする