Używanie języka R dla platformy Apache Spark z usługą Azure Synapse Analytics (wersja zapoznawcza)

Usługa Azure Synapse Analytics zapewnia wbudowaną obsługę języka R dla platformy Apache Spark. W tym celu analitycy danych mogą używać notesów usługi Azure Synapse Analytics do pisania i uruchamiania kodu języka R. Obejmuje to również obsługę platform SparkR i SparklyR, która umożliwia użytkownikom interakcję z platformą Spark przy użyciu znanych interfejsów platformy Spark lub języka R.

Z tego artykułu dowiesz się, jak używać języka R dla platformy Apache Spark z usługą Azure Synapse Analytics.

Środowisko uruchomieniowe języka R

Usługa Azure Synapse Analytics obsługuje środowisko uruchomieniowe języka R, które zawiera wiele popularnych pakietów języka R typu open source, w tym TidyVerse. Środowisko uruchomieniowe języka R jest dostępne we wszystkich pulach platformy Apache Spark 3.

Aby dowiedzieć się więcej o bibliotekach zainstalowanych w każdym środowisku uruchomieniowym, możesz odwiedzić następującą stronę: — Środowiska uruchomieniowe usługi Azure Synapse Analytics

Tworzenie i uruchamianie sesji notesu

Notes usługi Azure Synapse to interfejs internetowy umożliwiający tworzenie plików zawierających kod na żywo, wizualizacje i tekst narracji. Notesy to dobre miejsce do weryfikowania pomysłów i przeprowadzania krótkich eksperymentów w celu uzyskania szczegółowych informacji na podstawie danych. Notesy są również szeroko używane w scenariuszach przygotowywania danych, wizualizacji danych, uczenia maszynowego i innych scenariuszy danych big data.

Aby rozpocząć pracę z językiem R w notesach usługi Synapse, możesz zmienić język podstawowy, ustawiając opcję języka na SparkR (R).

Screenshot of the R language option.

Ponadto można użyć wielu języków w jednym notesie, określając polecenie magic języka na początku komórki.

%%sparkr
# Enter your R code here

Aby dowiedzieć się więcej na temat notesów w usłudze Azure Synapse Analytics, zapoznaj się z przewodnikiem dotyczącym zarządzania notesami.

Instalowanie pakietów

Biblioteki udostępniają kod wielokrotnego użytku, który można uwzględnić w programach lub projektach. Aby udostępnić aplikacjom kod innej firmy lub lokalnie, możesz zainstalować bibliotekę w jednej z bezserwerowych pul platformy Apache Spark lub sesji notesu.

Zarządzanie pakietami obszarów roboczych języka R

W usłudze Synapse pakiety obszarów roboczych mogą być plikami niestandardowymi lub prywatnymi plikami tar.gz języka R. Możesz przekazać te pakiety do obszaru roboczego, a później przypisać je do określonej bezserwerowej puli platformy Apache Spark. Po przypisaniu te pakiety obszarów roboczych są instalowane automatycznie we wszystkich sesjach puli platformy Spark uruchomionych w odpowiedniej puli.

Aby dowiedzieć się więcej na temat zarządzania bibliotekami obszarów roboczych, zobacz następujący artykuł: Zarządzanie pakietami obszarów roboczych

Zarządzanie sesjami języka R

Podczas interaktywnej analizy danych lub uczenia maszynowego możesz wypróbować nowsze pakiety lub mogą być potrzebne pakiety, które są obecnie niedostępne w puli platformy Apache Spark. Zamiast aktualizować konfigurację puli, użytkownicy mogą teraz używać pakietów o zakresie sesji do dodawania zależności sesji, zarządzania nimi i aktualizowania ich.

  • Podczas instalowania bibliotek o zakresie sesji tylko bieżący notes ma dostęp do określonych bibliotek.
  • Te biblioteki nie będą mieć wpływu na inne sesje ani zadania korzystające z tej samej puli platformy Spark.
  • Te biblioteki są instalowane w oparciu o podstawowe biblioteki środowiska uruchomieniowego i na poziomie puli.
  • Biblioteki notesów mają najwyższy priorytet.
  • Biblioteki języka R w zakresie sesji nie są utrwalane między sesjami. Te biblioteki są instalowane na początku każdej sesji po wykonaniu powiązanych poleceń instalacji
  • Biblioteki języka R o zakresie sesji są automatycznie instalowane zarówno w węzłach sterowników, jak i procesów roboczych

Na przykład użytkownicy mogą zainstalować bibliotekę języka R z migawek CRAN i CRAN. W poniższym przykładzie highcharter to popularny pakiet wizualizacji języka R. Ten pakiet można zainstalować na wszystkich węzłach w puli platformy Apache Spark przy użyciu następującego polecenia:

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

Aby dowiedzieć się więcej na temat zarządzania bibliotekami sesji języka R, zapoznaj się z następującym artykułem: zarządzanie pakietami sesji języka R

Narzędzia notesu

Microsoft Spark Utilities (MSSparkUtils) to wbudowany pakiet ułatwiający łatwe wykonywanie typowych zadań. Narzędzia MSSparkUtils umożliwiają pracę z systemami plików, uzyskiwanie zmiennych środowiskowych, łączenie notesów i pracę z wpisami tajnymi. Narzędzie MSSparkUtils jest obsługiwane w przypadku notesów języka R.

Aby rozpocząć, możesz uruchomić następujące polecenia:

library(notebookutils)
mssparkutils.fs.help()

Aby dowiedzieć się więcej o obsługiwanych poleceniach MSSparkUtils, zapoznaj się z następującym artykułem: use Microsoft Spark Utilities (Używanie narzędzi microsoft Spark)

Korzystanie z aparatu SparkR

SparkR to pakiet języka R, który zapewnia lekki fronton do korzystania z platformy Apache Spark z języka R. SparkR udostępnia rozproszoną implementację ramek danych, która obsługuje operacje, takie jak wybór, filtrowanie, agregacja itp. Usługa SparkR obsługuje również rozproszone uczenie maszynowe przy użyciu biblioteki MLlib.

Tworzenie ramki danych SparkR na podstawie lokalnej ramki danych języka R

Najprostszym sposobem utworzenia ramki danych jest przekonwertowanie lokalnej ramki danych języka R na ramkę SparkDataFrame. W tym przykładzie użyjemy as.DataFrame i przekażemy lokalną ramkę danych języka R do utworzenia elementu SparkDataFrame.

df <- as.DataFrame(faithful)

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

Tworzenie ramki danych SparkR przy użyciu interfejsu API źródła danych platformy Spark

Platforma SparkR obsługuje działanie na różnych źródłach danych za pośrednictwem interfejsu SparkDataFrame. Ogólna metoda tworzenia ramki danych ze źródła danych to read.df. Ta metoda pobiera ścieżkę do załadowania pliku i typu źródła danych. Usługa SparkR obsługuje natywne odczytywanie plików CSV, JSON, tekstowych i 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)

Tworzenie ramki danych SparkR przy użyciu usługi Spark SQL

Ramki danych platformy SparkR można również tworzyć przy użyciu zapytań 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)

Uczenie maszynowe

Usługa SparkR uwidacznia większość algorytmów MLLib. Pod maską platforma SparkR używa biblioteki MLlib do trenowania modelu. Aby dowiedzieć się więcej na temat obsługiwanych algorytmów uczenia maszynowego, zapoznaj się z dokumentacją platform SparkR i 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)

Korzystanie z interfejsu SparklyR

SparklyR to interfejs języka R dla platformy Apache Spark. Zapewnia mechanizm interakcji z platformą Spark przy użyciu znanych interfejsów języka R.

Aby nawiązać sparklyr połączenie, możesz użyć następującej metody połączenia w pliku 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')

Następne kroki