次の方法で共有


sparklyr

Azure Databricks では、ノートブック、ジョブ、RStudio Desktop で sparklyr がサポートされています。 この記事では sparklyr を使用する方法について説明し、実行可能なスクリプトの例を示します。 詳細については、Apache Spark への R インターフェイスに関するページを参照してください。

必要条件

Azure Databricks では、Databricks Runtime のリリースごとに sparklyr の最新の安定したバージョンが配布されます。 sparklyr は、Azure Databricks R ノートブックまたは Azure Databricks でホストされている RStudio Server 内で、インストールされているバージョンの sparklyr をインポートすることで使用できます。

RStudio Desktop では、Databricks Connect を使用すると、ローカル コンピューターから Azure Databricks クラスターに sparklyr を接続し、Apache Spark のコードを実行できます。 「Use sparklyr と RStudio Desktop を Databricks Connect と共に使用する」を参照してください。

sparklyr を Azure Databricks クラスターに 接続する

sparklyr の接続を確立するには、spark_connect() の接続メソッドとして "databricks" を使用できます。 Spark が Azure Databricks クラスターに既にインストールされているため、spark_connect() への追加のパラメータは不要で、spark_install() の呼び出しも必要ありません。

# Calling spark_connect() requires the sparklyr package to be loaded first.
library(sparklyr)

# Create a sparklyr connection.
sc <- spark_connect(method = "databricks")

sparklyr を使用した進行状況バーと Spark UI

上の例のように、sc という名前の変数に sparklyr 接続オブジェクトを割り当てると、Spark ジョブをトリガーする各コマンドの後に、Spark の進行状況バーがノートブックに表示されます。 さらに、進行状況バーの横にあるリンクをクリックすると、指定された Spark ジョブに関連付けられている Spark UI を表示できます。

Sparklyr の進行状況

sparklyr を使用する

sparklyr をインストールして接続を確立すると、他のすべての sparklyr API は通常と同様に動作します。 例については、ノートブックの例を参照してください。

sparklyr は、通常、dplyr などの他の tidyverse パッケージと共に使用されます。 これらのパッケージのほとんどは、作業を容易にするため Databricks にプレインストールされています。 それらをインポートするだけで、API の使用を開始できます。

sparklyr と SparkR を一緒に使用する

SparkR と sparklyr は、1 つのノートブックまたはジョブで一緒に使用できます。 SparkR を sparklyr と共にインポートし、その機能を使用できます。 Azure Databricks ノートブックで、SparkR 接続が事前構成されています。

SparkR の関数の一部は、dplyr の多くの関数をマスクします。

> library(SparkR)
The following objects are masked from ‘package:dplyr’:

arrange, between, coalesce, collect, contains, count, cume_dist,
dense_rank, desc, distinct, explain, filter, first, group_by,
intersect, lag, last, lead, mutate, n, n_distinct, ntile,
percent_rank, rename, row_number, sample_frac, select, sql,
summarize, union

dplyr をインポートした後に SparkR をインポートする場合は、完全修飾名 (例: dplyr::arrange()) を使用して dplyr 内の関数を参照できます。 同様に、SparkR の後に dplyr をインポートすると、SparkR の関数は dplyr によってマスクされます。

または、2 つのパッケージのいずれか必要ない方を選択的にデタッチすることもできます。

detach("package:dplyr")

SparkR と sparklyr の比較」も参照してください。

spark-submit ジョブで sparklyr を使用する

軽微なコード変更を行うことで、sparklyr を使用するスクリプトを Azure Databricks で spark-submit ジョブとして実行できます。 上記の手順の一部は、Azure Databricks 上の spark-submit ジョブでの sparklyr の使用には適用されません。 特に、Spark マスター URL を spark_connect に指定する必要があります。 次に例を示します。

library(sparklyr)

sc <- spark_connect(method = "databricks", spark_home = "<spark-home-path>")
...

サポートされない機能

Azure Databricks では、ローカル ブラウザーを必要とする spark_web()spark_log() などの sparklyr メソッドはサポートされていません。 ただし、Spark UI は Azure Databricks に組み込まれているため、Spark ジョブとログを簡単に検査できます。 「コンピューティング ドライバーとワーカー ログ」を参照してください。

ノートブックの例: Sparklyr のデモ

Sparklyr ノートブック

ノートブックを入手

その他の例については、「R で DataFrame とテーブルを操作する」を参照してください。