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 の Compute 構成の要件を満たしている必要があります。
- クラスター 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 個人用アクセス トークンの手順に従います。
手順 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 行が表示されます。