スパークリー

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

要件

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

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

スパークリーを Databricks クラスター に接続する

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

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

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

プログレスバーとキラキラ光る Spark UI

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

Sparklyr 進捗

スパークラー を使用する

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

Sparklyrは通常、 dplyr などの他の Tidyverseパッケージ と一緒に使用されます。これらのパッケージのほとんどは、便宜上 Databricks にプレインストールされています。 それらをインポートしてAPIの使用を開始するだけです。

sparklyr と SparkR を一緒に 使用する

SparkR と sparklyr は、1 つのノートブックまたはジョブで一緒に使用できます。 SparkRをsparklyrと一緒にインポートして、その機能を使用できます。 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 の比較」も参照してください。

スパーク送信ジョブ で sparklyr を使用する

Databricks で sparklyr を使用するスクリプトを、コードを少し変更して、スパーク送信ジョブとして実行できます。 上記の手順の一部は、Databricks のスパーク送信ジョブでの sparklyr の使用には適用されません。 特に、 spark_connectに Spark マスター URL を指定する必要があります。 例えば:

library(sparklyr)

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

サポートされていない機能

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

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

ノートブック Sparkly r

ノートブックを新しいタブで開く

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