メインコンテンツまでスキップ

R 開発者のための Databricks

このページでは、R言語を使用してDatabricksでノートブックとジョブを開発するための概要を説明します。

チュートリアル​

次のチュートリアルでは、一般的なワークフローについて学習するためのサンプルコードとノートブックを提供します。 ノートブックの例をワークスペースにインポートする手順については、「 ノートブックのインポート 」を参照してください。

SparkRとSparklyrの比較​

は、Databricks へのAPI R インターフェイスを提供するApache SparkSparkR 2 つの ( とSparklyr) をサポートしています。

SparkRと Sparklyr の比較については、 SparkRと Sparklyr の比較」を参照してください。

SparkR​

重要

Databricks Runtime 16.0以降では、DatabricksのSparkRは非推奨となりました。Databricks Sparklyrへの移行を推奨しています。 SparkRからSparklyrへの移行を参照してください。

SparkRは、Apache SparkへのRインターフェースであり、分散データフレームの実装を提供する。SparkRは、選択、フィルタリング、集計といった操作(Rのデータフレームと同様)を、大規模なデータセットに対してサポートします。以下の記事では、 SparkRの概要を説明します。

スパークライナー​

Sparklyr はApache Sparkへの R インターフェースであり、 dplyr 、 broom 、およびDBIと同様の機能を提供します。 以下の記事では、 Sparklyrの概要を説明します。

R で データフレーム とテーブルを操作する​

以下の記事では、R、 SparkR 、Sparklyr、およびdplyrを使用してRデータフレームを操作する方法について説明します。 DatabricksのSpark DataFramesおよびSparkテーブル。

ノートブックと Databricks Git フォルダーでコードを管理する​

DatabricksノートブックサポートR。これらのノートブックは、Jupyter と同様の機能を提供しますが、ビッグデータを使用した組み込み視覚化、デバッグとパフォーマンス モニタリングのための Apache Spark 統合、機械学習エクスペリメントを追跡するための MLflow 統合などが追加されています。ノートブックをインポートして開始します。クラスターにアクセスできるようになったら、ノートブックをクラスターに アタッチ して ノートブックを実行できます。

Databricks Git フォルダー を使用すると、ユーザーはノートブックやその他のファイルを Git リポジトリと同期できます。 Databricks Git フォルダーは、コードのバージョン管理とコラボレーションに役立ち、Databricks へのコードの完全なリポジトリのインポート、過去のノートブック バージョンの表示、IDE 開発との統合を簡略化できます。 まず、リモート Git リポジトリをクローンします。その後、リポジトリ クローンを使用してノートブックを開くか作成し、 ノートブックをクラスターにアタッチ して、 ノートブックを実行できます。

クラスター​

Databricks コンピュート は、単一ノードと大規模クラスターの両方に対してコンピュート管理を提供します。 クラスターハードウェアとライブラリは、必要に応じてカスタマイズできます。 クラスターにアクセスできるようになったら、ノートブックをクラスターに アタッチ したり、クラスターでジョブを実行したりできます。

シングルノード R と分散 R​

Databricks クラスターは、 Apache Spark ドライバー ノードと 0 個以上の Spark ワーカー ( エグゼキューター ) ノードで構成されます。 ドライバー ノードは、アタッチされたノートブックの状態を保持し、 SparkContextを保持し、ノートブックとライブラリのコマンドを解釈し、Spark エグゼキューターと調整する Spark マスターを実行します。 ワーカー nodes 実行 the Spark エグゼキューター, one Spark エグゼキューター per ワーカー node.

単一ノード クラスタリングには 1 つのドライバー ノードがあり、ワーカー ノードはなく、Sparkローカル モードで実行Databricks、によって管理されるテーブルへのアクセスをサポートします。シングル ノード クラスタリングは、 RStudio、ノートブック、ライブラリをサポートしており、 Spark に依存しないビッグデータや並列処理の R プロジェクトに役立ちます。 Single-node コンピュートを参照してください。

R が処理に苦労するデータ サイズ (ギガバイトまたはペタバイト数) の場合は、代わりに複数ノードまたは 分散 クラスタリングを使用する必要があります。 分散クラスタリングには、1 つのドライバー ノードと 1 つ以上のワーカー ノードがあります。 分散クラスタリングは、RStudio、ノートブック、ライブラリだけでなく、SparkRSparkContext.これらのパッケージには、使い慣れた SQL と DataFrame APIsが用意されており、ワーカー ノード間でさまざまな Spark タスクとコマンドを並行して割り当てて実行できます。 Sparklyr と SparkRの詳細については、「SparkR と Sparklyr の比較」を参照してください。

ワーカーノード間での関連作業の分散を特に活用する SparkR 関数と Sparklyr 関数には、次のものがあります。

  • sparklyr::spark_apply: クラスター内で任意の R コードを大規模に実行します。 これは、R でのみ使用できる機能や、Apache Spark や他の Spark パッケージで使用できない R パッケージを使用する場合に特に便利です。
  • SparkR::d apply:指定した関数を SparkDataFrameの各パーティションに適用します。
  • SparkR::d applyCollect: 指定した関数を SparkDataFrame の各パーティションに適用し、結果を data.frameとして R に収集します。
  • SparkR::gapply: 指定した列を使用して SparkDataFrame をグループ化し、指定した R 関数を各グループに適用します。
  • SparkR::gapplyCollect: 指定した列を使用して SparkDataFrame をグループ化し、指定した R 関数を各グループに適用し、結果を data.frameとして R に収集します。
  • SparkR::spark.lapply: 指定された関数を要素のリストに対して実行し、計算を Spark で分散します。

例については、ノートブック 「分散 R: Spark のユーザー定義関数」を参照してください。

Databricks Container Services​

Databricks Container Services では、クラスターを作成するときにDockerイメージを指定できます。では、R をサポートする クラスターを起動する例として、Databricks 上のdatabricksruntime/rbase 基本イメージを提供しています。Docker HubDatabricks Container Servicesこの基本イメージの生成に使用される Dockerfile も参照してください。

ライブラリ​

Databricksクラスターでは、Databricks Runtime Apache SparkDelta Lake、 など、多くの一般的なライブラリをすぐに使用できる を使用します。また、追加のサードパーティまたはカスタムの R パッケージをライブラリにインストールして、ノートブックやジョブで使用することもできます。

Databricks Runtime リリースノートのバージョンと互換性のデフォルト ライブラリから始めます。機械学習ワークロードには、Databricks Runtime for Machine Learning を使用します。Databricks Runtimeプレインストールされているライブラリの完全な一覧については、 リリースノートのバージョンと互換性 の対象 の「インストールされているDatabricks Runtime R ライブラリ」セクションを参照してください。

ノートブックをスコープにした R ライブラリを使用して環境をカスタマイズでき、CRAN や他のリポジトリのライブラリを使用してノートブックまたはジョブ環境を変更できます。これを行うには、utilsの使い慣れた install.packages 関数を使用できます。次の例では、デフォルトの CRAN リポジトリから Arrow R パッケージ をインストールします。

R
install.packages("arrow")

Databricks Runtime に含まれているバージョンよりも古いバージョンが必要な場合は、ノートブックを使用して devtoolsからinstall_version関数を実行できます。次の例では、 CRAN から dplyr バージョン 0.7.4 をインストールします。

R
require(devtools)

install_version(
package = "dplyr",
version = "0.7.4",
repos = "http://cran.r-project.org"
)

この方法でインストールされたパッケージは、クラスター全体で使用できます。 これらは、インストールしたユーザーにスコープが設定されます。 これにより、パッケージの競合を発生させることなく、同じパッケージの複数のバージョンを同じコンピュートにインストールできます。

必要に応じて、他のライブラリを コンピュートスコープのライブラリ としてインストールできます (たとえば、 CRAN. これを行うには、クラスタリング ユーザー インターフェイスで、[ ライブラリ] > [新しい> CRANのインストール ] をクリックし、ライブラリの名前を指定します。このアプローチは、 SparkR または Sparklyr を使用してユーザー定義関数を呼び出す場合に特に重要です。

詳細については、「 ライブラリのインストール」を参照してください。

カスタムパッケージをライブラリにインストールするには:

  1. カスタム パッケージは、コマンド ラインから、 または RStudio を使用してビルドします。

  2. 開発マシンから Databricks ワークスペースにカスタム パッケージ ファイルをコピーします。オプションについては、 ライブラリのインストールを参照してください。

  3. カスタムパッケージをライブラリにインストールするには、 install.packages.

    たとえば、ワークスペースのノートブックから、次のようにします。

    R
    install.packages(
    pkgs = "/path/to/tar/file/<custom-package>.tar.gz",
    type = "source",
    repos = NULL
    )

    又は:

    Bash
    %sh
    R CMD INSTALL /path/to/tar/file/<custom-package>.tar.gz

カスタムパッケージをライブラリにインストールした後、ライブラリを検索パスに追加し、1 つのコマンドでライブラリを読み込みます。

例えば:

R
# Add the library to the search path one time.
.libPaths(c("/path/to/tar/file/", .libPaths()))

# Load the library. You do not need to add the library to the search path again.
library(<custom-package>)

カスタムパッケージをクラスター の各ノードに ライブラリとしてインストールするには、 What's initスクリプト?を使用する必要があります。

ビジュアライゼーション​

Databricks R ノートブックでは、 display 関数を使用したさまざまな種類のビジュアライゼーションがサポートされています。

ジョブ​

R ワークロードは、スケジュールされたノートブック ジョブまたはトリガーされたノートブック ジョブとして Databricks で自動化できます。

  • UI を使用したジョブの作成の詳細については、「Lakeflowジョブの構成と編集」を参照してください。
  • Jobs API を使用すると、ジョブを作成、編集、および削除できます。
  • Databricks CLI は、ジョブ API を呼び出すための便利なコマンド ライン インターフェイスを提供します。

機械学習​

Databricks は、表形式データに対する従来のML、コンピュータ ビジョンと自然言語処理のためのディープラーニング、レコメンデーション システム、グラフ アナリティクスなど、さまざまな機械学習 (ML) ワークロードをサポートしています。Databricks での機械学習に関する一般的な情報については、「 Databricks Runtime for Machine Learning」を参照してください。

ML アルゴリズムの場合は、 Databricks Runtime for Machine Learning にプレインストールされているライブラリを使用できます。 カスタムライブラリをインストールすることもできます。

機械学習オペレーション(MLOps)に関して、DatabricksはオープンソースライブラリであるMLflowのマネージドサービスを提供しています。MLflow Trackingを使用すると、モデル開発の過程を記録し、モデルを再利用可能な形式で保存できます。MLflow Model Registry使用すると、本番運用に向けたモデルのプロモーションを管理および自動化できます。 ジョブとモデルサービング機能を使用すると、モデルをバッチジョブおよびストリーミングジョブとしてRESTエンドポイントとしてホストできます。詳細情報や例については、 Databricks の MLflowまたはMLflow R API ドキュメントを参照してください。

R 開発者ツール​

Databricks ノートブックに加えて、次の R 開発者ツールも使用できます。

R セッションのカスタマイズ​

Databricks Runtime 12.2 LTS 以降では、サイト全体のプロファイル ( .Rprofile ) ファイルを使用して R セッションをカスタマイズできます。 R ノートブックは起動時にファイルを R コードとしてソースします。 ファイルを変更するには、 R_HOME の値を見つけて $R_HOME/etc/Rprofile.siteを変更します。

Databricks は、ホストされた RStudioの適切な機能を確保するために、ファイルに構成を追加しました。いずれかを削除すると、RStudio が期待どおりに動作しなくなる可能性があります。

Databricks Runtime 11.3 LTS 以下では、環境変数を DATABRICKS_ENABLE_RPROFILE=trueに設定することで、この動作を有効にできます。

追加のリソース​