注
この記事では、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 をすぐに使い始める方法について説明します。
- Python用Databricks Connectについては、Python用Databricks Connect を参照してください。
- Scala 用 Databricks Connect については、Scala 用 Databricks Connect に関する説明を参照してください。
チュートリアル
次のチュートリアルでは、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: プロジェクトを作成する
- RStudio Desktop を開始します。
- メイン メニューの File > New Project をクリックします。
- [ 新しいディレクトリ] を選択します。
- [New Project を選択します。
- [ ディレクトリ名 ] と [ プロジェクトをサブディレクトリとして作成] に、新しいプロジェクト ディレクトリの名前と、この新しいプロジェクト ディレクトリを作成する場所を入力します。
- [ このプロジェクトで renv を使用する] を選択します。
renvパッケージの更新バージョンをインストールするように求められたら、[はい] をクリックします。 - [Create Project をクリックします。
手順 3: Databricks Connect パッケージとその他の依存関係を追加する
[RStudio Desktop] メイン メニューの [ ツール] > [パッケージのインストール] をクリックします。
[Install from] は [Repository (CRAN)] の設定のままにします。
[パッケージ] には、Databricks Connect パッケージとこのチュートリアルの前提条件となるパッケージの一覧を入力します。
sparklyr,pysparklyr,reticulate,usethis,dplyr,dbplyrInstall to Library を R の仮想環境に設定したままにしてください。
[依存関係のインストール] が選択されていることを確認します。
[ インストール] をクリックします。
コンソール ビュー ([ビュー] > [フォーカスをコンソールに移動] ) でインストールを続行するように求められたら、「
Y」と入力します。sparklyrおよびpysparklyrパッケージとそれらの依存関係は、R 仮想環境にインストールされます。Console ペインで、
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 ワークスペースのクラスターの詳細ページの 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 の組み込みサポートを使用します。
環境変数を格納する
.Renvironファイルを作成し(このファイルがまだ存在しない場合)、このファイルを編集用に開きます。RStudio デスクトップ コンソールで、次のコマンドを実行します。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 行が表示されます。