sparklyr
Azure Databricks поддерживает sparklyr в записных книжках, заданиях и RStudio Desktop. В этой статье описывается, как использовать sparklyr и приведены примеры сценариев, которые можно запустить. Дополнительные сведения см. в интерфейсе R в Apache Spark .
Требования
Azure Databricks распространяет последнюю стабильную версию sparklyr с каждым выпуском Databricks Runtime. Вы можете использовать sparklyr в записных книжках Azure Databricks R или внутри RStudio Server, размещенных на Azure Databricks, импортировав установленную версию sparklyr.
В RStudio Desktop Databricks Connect позволяет подключать sparklyr с локального компьютера к кластерам Azure Databricks и выполнять код Apache Spark. См. Использование sparklyr и RStudio Desktop с Databricks Connect.
Подключение sparklyr к кластерам Azure Databricks
Чтобы установить подключение sparklyr, можно использовать "databricks"
в качестве метода подключения в spark_connect()
.
Дополнительные parameters и spark_connect()
не требуются, и вызов spark_install()
также не требуется, так как Spark уже установлен в кластере Azure Databricks.
# Calling spark_connect() requires the sparklyr package to be loaded first.
library(sparklyr)
# Create a sparklyr connection.
sc <- spark_connect(method = "databricks")
Индикаторы выполнения и пользовательский интерфейс Spark со sparklyr
При назначении объекта подключения sparklyr переменной с именем sc
, как в приведенном выше примере, после каждой команды, запускающей задания Spark, в записной книжке будут отображаться индикаторы выполнения Spark.
Кроме того, можно пройти по ссылке рядом с индикатором выполнения, чтобы просмотреть пользовательский интерфейс Spark, связанный с этим заданием Spark.
Использование sparklyr
После установки sparklyr и подключения все остальные API sparklyr работают в обычном режиме. См. некоторые примеры в примере записной книжки.
Sparklyr обычно используется вместе с другими пакетами tidyverse, такими как dplyr. Большая часть этих пакетов предустановлена на Databricks для вашего удобства. Вы можете просто импортировать их и начать использовать API.
Совместное использование sparklyr и SparkR
В одной записной книжке или задании можно совместно использовать sparklyr и SparkR. Вы можете импортировать 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
При импорте SparkR после импорта dplyr можно ссылаться на функции в dplyr с помощью полных имен, например, dplyr::arrange()
.
Аналогично, если вы импортируете dplyr после SparkR, функции в SparkR замаскированы dplyr.
Кроме того, можно выборочно отключить один из двух пакетов, если он не нужен.
detach("package:dplyr")
См. также сравнение SparkR и sparklyr.
Использование sparklyr для заданий по отправке Spark
Вы можете выполнять скрипты, использующие sparklyr, в Azure Databricks как задания по отправке Spark с незначительными изменениями кода. Некоторые из приведенных выше инструкций не применяются к использованию sparklyr в заданиях по отправке Spark на Azure Databricks. В частности, необходимо указать основной URL-адрес Spark в spark_connect
. Например:
library(sparklyr)
sc <- spark_connect(method = "databricks", spark_home = "<spark-home-path>")
...
Неподдерживаемые функции
Azure Databricks не поддерживает методы sparklyr, такие как spark_web()
и spark_log()
, для которых требуется локальный браузер. Однако, поскольку пользовательский интерфейс Spark встроен в Azure Databricks, можно легко изучить задания и журналы Spark.
См . журналы драйвера вычислений и рабочих ролей.
Пример записной книжки: демонстрация Sparklyr
Записная книжка Sparklyr
Для дополнительных примеров см. Работа с DataFrame и tables в R.