Použití R pro Apache Spark se službou Azure Synapse Analytics (Preview)

Azure Synapse Analytics poskytuje integrovanou podporu jazyka R pro Apache Spark. V rámci toho můžou datoví vědci k zápisu a spuštění kódu R použít poznámkové bloky Azure Synapse Analytics. To zahrnuje také podporu SparkR a SparklyR, která uživatelům umožňuje pracovat se Sparkem pomocí známých rozhraní Spark nebo R.

V tomto článku se dozvíte, jak používat R pro Apache Spark s Azure Synapse Analytics.

R Runtime

Azure Synapse Analytics podporuje modul runtime R, který obsahuje mnoho oblíbených opensourcových balíčků R, včetně TidyVerse. Modul runtime R je k dispozici ve všech fondech Apache Spark 3.

Další informace o knihovnách nainstalovaných v jednotlivých modulech runtime najdete na následující stránce: – Moduly runtime Azure Synapse Analytics

Vytváření a spouštění relací poznámkového bloku

Poznámkový blok Azure Synapse je webové rozhraní, které umožňuje vytvářet soubory, které obsahují živý kód, vizualizace a text vyprávění. Poznámkové bloky jsou vhodným místem pro ověřování nápadů a rychlé experimenty, které vám pomohou získat poznatky z dat. Poznámkové bloky se také běžně používají při přípravě dat, vizualizaci dat, strojovém učení a dalších scénářích velkých objemů dat.

Pokud chcete začít s jazykem R v poznámkových blocích Synapse, můžete primární jazyk změnit nastavením možnosti jazyka na SparkR (R).

Screenshot of the R language option.

Kromě toho můžete v jednom poznámkovém bloku použít více jazyků zadáním příkazu magic jazyka na začátku buňky.

%%sparkr
# Enter your R code here

Další informace o poznámkových blocích v Azure Synapse Analytics najdete v průvodci správou poznámkových bloků.

Instalace balíčků

Knihovny poskytují opakovaně použitelný kód, který můžete chtít zahrnout do svých programů nebo projektů. Pokud chcete zpřístupnit kód třetí strany nebo místně sestavený pro vaše aplikace, můžete knihovnu nainstalovat do jednoho z bezserverových fondů Apache Spark nebo relace poznámkového bloku.

Správa balíčků pracovních prostorů R

Balíčky pracovního prostoru ve službě Synapse můžou být vlastní nebo soukromé soubory tar.gz jazyka R. Tyto balíčky můžete nahrát do pracovního prostoru a později je přiřadit ke konkrétnímu bezserverovém fondu Apache Spark. Po přiřazení se tyto balíčky pracovních prostorů nainstalují automaticky na všechny relace fondu Sparku spuštěné v odpovídajícím fondu.

Další informace o správě knihoven pracovních prostorů najdete v následujícím článku: – Správa balíčků pracovních prostorů

Správa relací R

Při interaktivní analýze dat nebo strojovém učení můžete vyzkoušet novější balíčky nebo možná budete potřebovat balíčky, které jsou aktuálně ve fondu Apache Spark nedostupné. Místo aktualizace konfigurace fondu teď uživatelé můžou k přidávání, správě a aktualizaci závislostí relací používat balíčky s oborem relace.

  • Při instalaci knihoven s vymezeným oborem relace má přístup k zadaným knihovnám pouze aktuální poznámkový blok.
  • Tyto knihovny nebudou mít vliv na jiné relace nebo úlohy používající stejný fond Sparku.
  • Tyto knihovny se instalují nad základní knihovny runtime a na úrovni fondu.
  • Knihovny poznámkových bloků mají nejvyšší prioritu.
  • Knihovny jazyka R s oborem relace se neuchovávají napříč relacemi. Tyto knihovny se instalují na začátku každé relace při spuštění souvisejících instalačních příkazů.
  • Knihovny R s oborem relace se automaticky instalují mezi ovladači i pracovními uzly.

Uživatelé mohou například nainstalovat knihovnu R ze snímků CRAN a CRAN. V následujícím příkladu je Highcharter oblíbeným balíčkem pro vizualizace jazyka R. Tento balíček můžu nainstalovat na všechny uzly ve fondu Apache Spark pomocí následujícího příkazu:

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

Další informace o správě knihoven relací R najdete v následujícím článku: Správa balíčků relací R

Nástroje poznámkového bloku

Microsoft Spark Utilities (MSSparkUtils) je integrovaný balíček, který vám pomůže snadno provádět běžné úlohy. MsSparkUtils můžete použít k práci se systémy souborů, k získání proměnných prostředí, ke zřetězení poznámkových bloků a práci s tajnými kódy. MsSparkUtils je podporován pro poznámkové bloky R.

Začněte spuštěním následujících příkazů:

library(notebookutils)
mssparkutils.fs.help()

Další informace o podporovaných příkazech MSSparkUtils najdete v následujícím článku: Použijte nástroje Microsoft Spark Utilities.

Použití SparkR

SparkR je balíček R, který poskytuje lehký front-end pro použití Apache Sparku z R. SparkR poskytuje implementaci distribuovaného datového rámce, která podporuje operace, jako je výběr, filtrování, agregace atd. SparkR podporuje také distribuované strojové učení pomocí knihovny MLlib.

Vytvoření datového rámce SparkR z místního datového rámce R

Nejjednodušší způsob, jak vytvořit datový rámec, je převést místní R data.frame na SparkDataFrame. V tomto příkladu použijeme as.DataFrame a předáme místní datový rámec R k vytvoření sparkDataFrame.

df <- as.DataFrame(faithful)

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

Vytvoření datového rámce SparkR pomocí rozhraní API zdroje dat Sparku

SparkR podporuje provoz na různých zdrojích dat prostřednictvím rozhraní SparkDataFrame. Obecná metoda pro vytvoření datového rámce ze zdroje dat je read.df. Tato metoda přebírá cestu pro načtení souboru a typ zdroje dat. SparkR nativně podporuje čtení souborů CSV, JSON, textu a 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)

Vytvoření datového rámce SparkR pomocí Spark SQL

Datové rámce SparkR můžete vytvářet také pomocí dotazů 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)

strojové učení

SparkR zveřejňuje většinu algoritmů MLLib. SparkR pod kapotou používá K trénování modelu MLlib. Další informace o podporovaných algoritmech strojového učení najdete v dokumentaci pro SparkR a 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)

Použití SparklyR

SparklyR je rozhraní R pro Apache Spark. Poskytuje mechanismus pro interakci se Sparkem pomocí známých rozhraní jazyka R.

K navázání sparklyr připojení můžete použít následující metodu připojení v spark_connect()souboru .

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

Další kroky