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

R 開発者のための Databricks

このセクションでは、R 言語を使用して Databricks でノートブックとジョブを開発するためのガイドを提供します。

基本的なワークフローは以下のとおりです。

  1. コードのインポート: ファイルまたは Git リポジトリから独自のコードをインポートするか、以下のチュートリアルを試してください。 Databricks では、対話型の Databricks ノートブックの使用方法を学習することをお勧めします。
  2. クラスターでコードを実行する: 独自のクラスターを作成するか、共有クラスターを使用するアクセス許可があることを確認します。 ノートブックをクラスターにアタッチし、ノートブックを実行します。

さらに、より具体的なトピックに分岐できます。

チュートリアル

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

参考

次のサブセクションでは、R を使用して Databricks で開発を開始するのに役立つ主な機能とヒントを示します。

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

SparkR

important

Databricks の SparkR は、Databricks Runtime 16.0 以降では 非推奨とされています 。 Databricks 代わりに Sparklyr を使用することをお勧めします。

これらの記事では、 SparkR の概要とリファレンスを提供します。 SparkR は、分散データ フレームの実装を提供する Apache Spark への R インターフェイスです。 SparkR は、選択、フィルター処理、集計 (R データ フレームと同様) などの操作をサポートしますが、大規模なデータセットに対してサポートします。

スパークライナー

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

SparkRとSparklyrの比較

この記事では、 SparkR と Sparklyr の主な類似点と相違点について説明します。

データフレームSparkRとSparklyrを使用した とテーブルの操作

この記事では、R、 SparkR、Sparklyr、dplyr を使用して R data.frames を操作する方法について説明します。 Spark データフレーム、および Databricks の 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、ノートブック、ライブラリだけでなく、SparkContextを通じて分散クラスターを使用するように独自に設計された SparkR や sparkly などの R パッケージもサポートしています。 これらのパッケージには、使い慣れた SQL と データフレーム 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 を使用したジョブの作成の詳細については、「 Databricks ジョブの構成と編集」を参照してください。
  • 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エンドポイントとしてホストできます。 詳細情報と例については、MLflow genAI エージェントとML モデルのライフサイクルに関する またはMLflow RAPI のドキュメント を参照してください。

R 開発者ツール

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

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

Databricks Runtime 12.2 LTS 以降では、サイト全体のプロファイル (.Rprofile) ファイルを使用して R セッションをカスタマイズできます。 R ノートブックは、起動時にファイルを R コードとしてソースします。 ファイルを変更するには、 R_HOME の値を見つけて $R_HOME/etc/Rprofile.siteを変更します。 Databricks では、 Databricks でホストされている RStudio が適切に機能するように、ファイルに構成が追加されていることに注意してください。 これを削除すると、RStudio が期待どおりに動作しなくなる可能性があります。

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

追加のリソース