Бөлісу құралы:


Использование R для Apache Spark с Azure Synapse Analytics (предварительная версия)

Azure Synapse Analytics обеспечивает встроенную поддержку R для Apache Spark. В рамках этого специалисты по обработке и анализу данных могут использовать записные книжки Azure Synapse Analytics для записи и запуска кода R. Это также включает поддержку SparkR и SparklyR, которая позволяет пользователям взаимодействовать с Spark с помощью знакомых интерфейсов Spark или R.

В этой статье вы узнаете, как использовать R для Apache Spark с Azure Synapse Analytics.

Среда выполнения R

Azure Synapse Analytics поддерживает среду выполнения R, которая включает множество популярных пакетов R с открытым кодом, включая TidyVerse. Среда выполнения R доступна во всех пулах Apache Spark 3.

Дополнительные сведения о библиотеках, установленных в каждой среде выполнения, см. на следующей странице. — Среда выполнения Azure Synapse Analytics

Создание и запуск сеансов записной книжки

Записная книжка Azure Synapse — это веб-интерфейс для создания файлов, содержащих динамический код, визуализации и текст повествования. Записные книжки отлично подходят для проверки идей и использования быстрых экспериментов, чтобы получить аналитические сведения по данным. Записные книжки также широко используются при подготовке и визуализации данных, машинном обучении и в других сценариях с большими данными.

Чтобы приступить к работе с R в записных книжках Synapse, можно изменить основной язык, установив для параметра языка значение SparkR (R).

Снимок экрана: параметр языка R.

Кроме того, можно использовать несколько языков в одной записной книжке, указав волшебную команду языка в начале ячейки.

%%sparkr
# Enter your R code here

Дополнительные сведения о записных книжках в Azure Synapse Analytics см. в руководстве по управлению записными книжками.

Установка пакетов

Библиотеки предоставляют многократно используемый код, который вы можете включать в программы или проекты. Чтобы сделать написанный сторонними или собственными разработчиками код доступным для приложений, можно установить библиотеку на одном из бессерверных пулов Apache Spark или в сеансе записной книжки.

Управление пакетами рабочей области R

В Synapse пакеты рабочей области могут быть общедоступными или частными <R_Package>.tar.gz файлами. Все зависимости также должны быть установлены. Вы можете передать эти пакеты в рабочую область и позже назначить их определенному бессерверному пулу Apache Spark. После назначения эти пакеты рабочей области устанавливаются автоматически во всех сеансах пула Spark, запущенных в соответствующем пуле.

Дополнительные сведения об управлении библиотеками рабочих областей см. в следующей статье. Управление пакетами рабочих областей

Управление сеансами R

При интерактивном анализе данных или машинном обучении можно попробовать более новые пакеты или вам могут потребоваться пакеты, которые в настоящее время недоступны в пуле Apache Spark. Вместо обновления конфигурации пула пользователи теперь могут использовать пакеты уровня сеанса для добавления, администрирования и обновления зависимостей сеансов.

  • При установке библиотек на уровне сеанса доступ к указанным библиотекам будет иметь только текущая записная книжка.
  • Эти библиотеки не влияют на другие сеансы или задания с помощью того же пула Spark.
  • Эти библиотеки устанавливаются поверх базовой среды выполнения и библиотек уровня пула.
  • Библиотеки записных книжек имеют наивысший приоритет.
  • Библиотеки R с область сеансами не сохраняются в сеансах. Эти библиотеки устанавливаются в начале каждого сеанса при выполнении связанных команд установки.
  • Библиотеки R с область сеансами автоматически устанавливаются как на узлах драйвера, так и в рабочих узлах

Например, пользователи могут установить библиотеку R из моментальных снимков CRAN и CRAN. В приведенном ниже примере Highcharter является популярным пакетом для визуализаций R. Этот пакет можно установить на всех узлах в пуле Apache Spark с помощью следующей команды:

install.packages("highcharter", repos = "https://cran.microsoft.com/snapshot/2021-07-16/")

Дополнительные сведения об управлении библиотеками сеансов R см. в следующей статье: управление пакетами сеансов R

Служебные программы записной книжки

Служебные программы Microsoft Spark (MSSparkUtils) — это встроенный пакет, помогающий легко выполнять распространенные задачи. С помощью MSSparkUtils можно работать с файловыми системами и секретами, получать переменные среды и связывать записные книжки. MSSparkUtils поддерживается для записных книжек R.

Чтобы приступить к работе, можно выполнить следующие команды:

library(notebookutils)
mssparkutils.fs.help()

Дополнительные сведения о поддерживаемых командах MSSparkUtils см. в следующей статье: использование служебных программ Microsoft Spark

Использование SparkR

SparkR — это пакет R, который предоставляет интерфейс с легким весом для использования Apache Spark из R. SparkR предоставляет реализацию распределенного кадра данных, которая поддерживает такие операции, как выбор, фильтрация, агрегирование и т. д. SparkR также поддерживает распределенное машинное обучение с помощью MLlib.

Создание кадра данных SparkR из локального кадра данных R.frame

Самый простой способ создания кадра данных — преобразовать локальный R data.frame в SparkDataFrame. В этом примере мы используем и передаваем as.DataFrame локальный кадр данных R для создания SparkDataFrame.

df <- as.DataFrame(faithful)

# Displays the first part of the SparkDataFrame
head(df)
##  eruptions waiting
##1     3.600      79
##2     1.800      54

Создание кадра данных SparkR с помощью API источника данных Spark

SparkR поддерживает работу с различными источниками данных через интерфейс SparkDataFrame. Основной метод создания кадров данных из источника — это read.df. Этот метод принимает путь к загружаемому файлу и тип источника данных. SparkR поддерживает чтение файлов в формате CSV, JSON, файлов текстовом формате и файлов Parquet по умолчанию.

# Read a csv from ADLSg2
df <- read.df('abfss://<container name>@<storage account name>.dfs.core.windows.net/avocado.csv', 'csv', header="true")
head(df)

Создание кадра данных SparkR с помощью Spark SQL

Кадры данных Spark можно также создавать с помощью запросов Spark SQL.

# Register this SparkDataFrame as a temporary view.
createOrReplaceTempView(df, "eruptions")

# SQL statements can be run by using the sql method
sql_df <- sql("SELECT * FROM eruptions")
head(sql_df)

Машинное обучение

SparkR включает большую часть алгоритмов MLLib. SparkR применяет MLlib для обучения модели. Дополнительные сведения о поддерживаемых алгоритмах машинного обучения см. в документации по SparkR и MLlib.

# Create the DataFrame
cars <- cbind(model = rownames(mtcars), mtcars)
carsDF <- createDataFrame(cars)

# Fit a linear model over the dataset.
model <- spark.glm(carsDF, mpg ~ wt + cyl)

# Model coefficients are returned in a similar format to R's native glm().
summary(model)

Использование SparklyR

SparklyR — это интерфейс R для Apache Spark. Он предоставляет механизм взаимодействия с Spark с помощью знакомых интерфейсов R.

Чтобы установить sparklyr подключение, можно использовать следующий метод spark_connect()подключения.

spark_version <- "<enter Spark version>"
config <- spark_config()
sc <- spark_connect(master = "yarn", version = spark_version, spark_home = "/opt/spark", config = config, method='synapse')

Следующие шаги