Databricks Connect for R
Note
この記事では、Databricks Runtime 13.0 以降用の Databricks Connect と sparklyr
との統合ついて説明します。 この統合は、Databricks によって提供されておらず、Databricks によって直接サポート@もされていません。
ご質問がある場合は、「Posit Community」に移動してください。
問題を報告するには、GitHub の sparklyr
リポジトリの [Issues] セクションに移動します。
詳細については、sparklyr
ドキュメントの「Databricks Connect v2」を参照してください。
この記事では、R、sparklyr
、および RStudio Desktop を使用して、Databricks Connect をすぐに使えるようにする方法について説明します。
- この記事の Python バージョンについては、「Databricks Connect for Python」を参照してください。
- この記事の Scala バージョンについては、「Databricks Connect for Scala」を参照してください。
Databricks Connect を使用すると、RStudio Desktop などの一般的な IDE、ノートブック サーバー、その他のカスタム アプリケーションを Azure Databricks クラスターに接続できます。 「Databricks Connect とは」を参照してください。
チュートリアル
このチュートリアルでは RStudio Desktop と Python 3.10 を使用します。 まだインストールしていない場合は、R と RStudio Desktop および Python 3.10 をインストールしてください。
このチュートリアルの補足情報については、sparklyr
Web サイトの Spark Connect とDatabricks Connect v2 に関するページの Databricks Connect についてのセクションを参照してください。
要件
このチュートリアルを完了するには、次の要件を満たす必要があります。
- ターゲットの Azure Databricks のワークスペースとクラスターは、Databricks Connect のクラスター構成要件を満たしている必要があります。
- クラスター ID を使用できる必要があります。 クラスター ID を取得するには、ワークスペースで、サイドバーの [コンピューティング] をクリックしてから、クラスターの名前をクリックします。 Web ブラウザーのアドレス バーで、URL 内の
clusters
とconfiguration
の間の文字列をコピーします。
手順 1: 個人用アクセス トークンを作成する
Note
Databricks Connect for R 認証では、現在、Azure Databricks 個人用アクセス トークンのみがサポートされています。
このチュートリアルでは、Azure Databricks ワークスペースでの認証用に Azure Databricks 個人用アクセス トークン認証を使用します。
Azure Databricks 個人用アクセス トークンが既にある場合は、手順 2 に進みます。 Azure Databricks 個人用アクセス トークンが既にあるかわからない場合、この手順を進めても、ユーザー アカウント内の他の Azure Databricks 個人用アクセス トークンに影響が出ることはありません。
個人用アクセス トークンを作成するには
- Azure Databricks ワークスペースの上部バーで、目的の Azure Databricks ユーザー名をクリックし、次にドロップダウンから [設定] を選択します。
- [開発者] をクリックします。
- [アクセス トークン] の横にある [管理] をクリックします。
- [新しいトークンの生成] をクリックします。
- (省略可能) 将来このトークンを識別するのに役立つコメントを入力し、トークンの既定の有効期間 90 日を変更します。 有効期間のないトークンを作成するには (推奨されません)、[有効期間 (日)] ボックスを空のままにします。
- [Generate](生成) をクリックします。
- 表示されたトークンを安全な場所にコピーし、[完了] をクリックします。
Note
コピーしたトークンは必ず安全な場所に保存してください。 コピーしたトークンは他人に見せないでください。 コピーしたトークンを失った場合、それとまったく同じトークンは再生成できません。 代わりに、この手順を繰り返して新しいトークンを作成する必要があります。 コピーしたトークンを紛失した場合や、トークンが侵害されていると思われる場合、Databricks では、[アクセス トークン] ページのトークンの横にあるごみ箱 ([取り消し]) アイコンをクリックして、ワークスペースからそのトークンをすぐに削除することを強くお勧めします。
ワークスペースでトークンを作成することや使用することができない場合は、ワークスペース管理者によってトークンが無効にされているか、トークンを作成または使用する権限が作業者に付与されていない可能性があります。 ワークスペース管理者に連絡するか、以下のトピックを参照してください。
手順 2: プロジェクトを作成する
- RStudio Desktop を開始します。
- メイン メニューで、[ファイル]>[新しいプロジェクト] の順にクリックします。
- [新しいディレクトリ] を選びます。
- [新しいプロジェクト] を選択します。
- [ディレクトリ名] と [次のサブディレクトリとしてプロジェクトを作成] に、新しいプロジェクト ディレクトリの名前とこの新しいプロジェクト ディレクトリを作成する場所を入力します。
- [このプロジェクトで renv を使用する] を選択します。
renv
パッケージの更新バージョンをインストールするように求められたら、[はい] をクリックします。 - [プロジェクトの作成] をクリックします。
手順 3: Databricks Connect パッケージとその他の依存関係を追加する
RStudio Desktop のメイン メニューで、[ツール] > [パッケージのインストール] をクリックします。
[インストール元] は [リポジトリ (CRAN)] に設定したままにします。
[パッケージ] には、Databricks Connect パッケージとこのチュートリアルの前提条件となるパッケージの以下の一覧を入力します。
sparklyr,pysparklyr,reticulate,usethis,dplyr,dbplyr
[ライブラリにインストール] は R 仮想環境に設定したままにします。
[依存関係のインストール] が選択されていることを確認します。
[インストール] をクリックします。
[コンソール] ビュー ([表示] > [コンソールにフォーカスを移動]) で、インストールを続行するように求められたら、「
Y
」と入力します。sparklyr
およびpysparklyr
パッケージとそれらの依存関係は、R 仮想環境にインストールされます。[コンソール] ペインで、
reticulate
を使用し、次のコマンドを実行して Python をインストールします (Databricks Connect for R では、最初にreticulate
と Python をインストールする必要があります)。次のコマンドで、3.10
を、ご利用の Azure Databricks クラスターにインストールされている Python バージョンのメジャーとマイナー バージョンに置き換えます。 このメジャーとマイナー バージョンを確認するには、「Databricks Runtime リリース ノートのバージョンと互換性」でクラスターの Databricks Runtime バージョンのリリース ノートの「システム環境」セクションを参照してください。reticulate::install_python(version = "3.10")
[コンソール] ペインで、次のコマンドを実行して Databricks Connect パッケージをインストールします。 次のコマンドで、
13.3
を、Azure Databricks クラスターにインストールされている Databricks Runtime バージョンに置き換えます。 このバージョンを確認するには、Azure Databricks ワークスペースのクラスターの詳細ページで、[構成] タブの [Databricks Runtime のバージョン] ボックスを参照してください。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 の組み込みサポートを使用します。
このファイルがまだ存在しない場合は、環境変数を格納する
.Renviron
ファイルを作成し、編集のためにこのファイルを開きます。RStudio Desktop の [コンソール] で、次のコマンドを実行します。usethis::edit_r_environ()
表示される
.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>
.Renviron
ファイルを保存します。環境変数を R に読み込みます。メイン メニューで、[セッション] > [R の再起動] の順にクリックします。
手順 5: コードを追加する
RStudio Desktop のメイン メニューで、[ファイル] > [新しいファイル] > [R スクリプト] の順にクリックします。
次のコードをファイルに入力し、
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: コードを実行する
RStudio Desktop の
demo.R
ファイルのツール バーで、[ソース] をクリックします。[コンソール] に、
trips
テーブルの最初の 5 行が表示されます。[接続] ビュー ([表示] > [接続の表示]) では、使用可能なカタログ、スキーマ、テーブル、およびビューを調べることができます。
手順 7: コードをデバッグする
demo.R
ファイルで、print(trips, n = 5)
の横にあるとじしろをクリックしてブレークポイントを設定します。demo.R
ファイルのツール バーで、[ソース] をクリックします。- コードの実行がブレークポイントで一時停止したら、[環境] ビュー ([表示] > [環境の表示]) で変数を調べることができます。
- メイン メニューで、[デバッグ] >[続行] の順にクリックします。
- [コンソール] に、
trips
テーブルの最初の 5 行が表示されます。