R gebruiken voor Apache Spark met Azure Synapse Analytics (preview)

Azure Synapse Analytics biedt ingebouwde R-ondersteuning voor Apache Spark. Als onderdeel hiervan kunnen gegevenswetenschappers Azure Synapse Analytics-notebooks gebruiken om hun R-code te schrijven en uit te voeren. Dit omvat ook ondersteuning voor SparkR en SparklyR, waarmee gebruikers kunnen communiceren met Spark met behulp van vertrouwde Spark- of R-interfaces.

In dit artikel leert u hoe u R voor Apache Spark gebruikt met Azure Synapse Analytics.

R Runtime

Azure Synapse Analytics ondersteunt een R-runtime die veel populaire opensource R-pakketten bevat, waaronder TidyVerse. De R-runtime is beschikbaar voor alle Apache Spark 3-pools.

Voor meer informatie over de bibliotheken die in elke runtime zijn geïnstalleerd, gaat u naar de volgende pagina: - Azure Synapse Analytics Runtimes

Notebooksessies maken en uitvoeren

Een Azure Synapse-notebook is een webinterface waarmee u bestanden kunt maken die livecode, visualisaties en verhaaltekst bevatten. Notebooks zijn een goede plek om ideeën te valideren en snelle experimenten te gebruiken om inzichten uit uw gegevens te verkrijgen. Notebooks worden ook veel gebruikt in gegevensvoorbereiding, gegevensvisualisatie, machine learning en andere big data-scenario's.

Als u aan de slag wilt met R in Synapse-notebooks, kunt u de primaire taal wijzigen door de taaloptie in te stellen op SparkR (R).

Screenshot of the R language option.

Daarnaast kunt u meerdere talen in één notebook gebruiken door de magic-opdracht taal aan het begin van een cel op te geven.

%%sparkr
# Enter your R code here

Raadpleeg de handleiding voor het beheren van notebooks in Azure Synapse Analytics voor meer informatie over notebooks.

Pakketten installeren

Bibliotheken bieden herbruikbare code die u mogelijk wilt opnemen in uw programma's of projecten. Als u externe of lokaal gebouwde code beschikbaar wilt maken voor uw toepassingen, kunt u een bibliotheek installeren op een van uw serverloze Apache Spark-pools of notebooksessie.

R-werkruimtepakketten beheren

In Synapse kunnen werkruimtepakketten aangepaste of persoonlijke R tar.gz-bestanden zijn. U kunt deze pakketten uploaden naar uw werkruimte en deze later toewijzen aan een specifieke serverloze Apache Spark-pool. Zodra deze werkruimtepakketten zijn toegewezen, worden deze werkruimtepakketten automatisch geïnstalleerd op alle Spark-poolsessies die zijn gestart in de bijbehorende pool.

Zie het volgende artikel voor meer informatie over het beheren van werkruimtebibliotheken: - Werkruimtepakketten beheren

R-sessies beheren

Wanneer u interactieve gegevensanalyse of machine learning uitvoert, kunt u nieuwere pakketten proberen of hebt u mogelijk pakketten nodig die momenteel niet beschikbaar zijn in uw Apache Spark-pool. In plaats van de poolconfiguratie bij te werken, kunnen gebruikers nu sessiebereikpakketten gebruiken om sessieafhankelijkheden toe te voegen, te beheren en bij te werken.

  • Wanneer u bibliotheken met sessiebereik installeert, heeft alleen het huidige notitieblok toegang tot de opgegeven bibliotheken.
  • Deze bibliotheken hebben geen invloed op andere sessies of taken met dezelfde Spark-pool.
  • Deze bibliotheken worden geïnstalleerd op basisbibliotheken op runtime- en poolniveau.
  • Notebookbibliotheken hebben de hoogste prioriteit.
  • R-bibliotheken met sessiebereik blijven niet behouden tussen sessies. Deze bibliotheken worden aan het begin van elke sessie geïnstalleerd wanneer de bijbehorende installatieopdrachten worden uitgevoerd
  • R-bibliotheken met sessiebereik worden automatisch geïnstalleerd op zowel stuurprogramma- als werkknooppunten

Gebruikers kunnen bijvoorbeeld een R-bibliotheek installeren vanuit CRAN- en CRAN-momentopnamen. In het onderstaande voorbeeld is Highcharter een populair pakket voor R-visualisaties. Ik kan dit pakket installeren op alle knooppunten in mijn Apache Spark-pool met behulp van de volgende opdracht:

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

Zie het volgende artikel voor meer informatie over het beheren van sessie-R-bibliotheken: R-sessiepakketten beheren

Hulpprogramma's voor notitieblokken

Microsoft Spark Utilities (MSSparkUtils) is een ingebouwd pakket om u te helpen eenvoudig algemene taken uit te voeren. U kunt MSSparkUtils gebruiken om te werken met bestandssystemen, om omgevingsvariabelen op te halen, notebooks te koppelen en met geheimen te werken. MSSparkUtils wordt ondersteund voor R-notebooks.

U kunt de volgende opdrachten uitvoeren om aan de slag te gaan:

library(notebookutils)
mssparkutils.fs.help()

Raadpleeg het volgende artikel voor meer informatie over de ondersteunde MSSparkUtils-opdrachten: Gebruik Microsoft Spark Utilities

SparkR gebruiken

SparkR is een R-pakket dat een lichtgewicht front-end biedt voor het gebruik van Apache Spark van R. SparkR biedt een gedistribueerde implementatie van een gegevensframe die ondersteuning biedt voor bewerkingen zoals selectie, filteren, aggregatie, enzovoort. SparkR biedt ook ondersteuning voor gedistribueerde machine learning met MLlib.

Een SparkR-dataframe maken op basis van een lokale R data.frame

De eenvoudigste manier om een DataFrame te maken, is door een lokale R data.frame te converteren naar een SparkDataFrame. In dit voorbeeld gebruiken as.DataFrame en geven we het lokale R-dataframe door om het SparkDataFrame te maken.

df <- as.DataFrame(faithful)

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

Een SparkR-gegevensframe maken met behulp van de Spark-gegevensbron-API

SparkR ondersteunt het gebruik van verschillende gegevensbronnen via de SparkDataFrame-interface. De algemene methode voor het maken van een DataFrame op basis van een gegevensbron is read.df. Met deze methode wordt het pad voor het bestand geladen en het type gegevensbron. SparkR biedt ondersteuning voor het lezen van CSV-, JSON-, tekst- en Parquet-bestanden.

# 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)

Een SparkR-gegevensframe maken met Spark SQL

U kunt ook SparkR DataFrames maken met behulp van Spark SQL-query's.

# 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)

Machine learning

SparkR maakt de meeste MLLib-algoritmen beschikbaar. SparkR gebruikt MLlib om het model te trainen. Raadpleeg de documentatie voor SparkR en MLlib voor meer informatie over welke machine learning-algoritmen worden ondersteund.

# 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 gebruiken

SparklyR is een R-interface voor Apache Spark. Het biedt een mechanisme voor interactie met Spark met behulp van vertrouwde R-interfaces.

Als u een sparklyr verbinding tot stand wilt brengen, kunt u de volgende verbindingsmethode gebruiken in 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')

Volgende stappen