搭配 Azure Synapse Analytics 使用 R for Apache Spark (預覽版)
Azure Synapse Analytics 提供 Apache Spark 的內建 R 支援。 為此,資料科學家可以使用 Azure Synapse Analytics 筆記本來撰寫和執行其 R 程式碼。 這也包含 SparkR 和 SparklyR 的支援 ,可讓使用者使用熟悉的 Spark 或 R 介面與 Spark 互動。
在本文中,您將瞭解如何搭配 Azure Synapse Analytics 使用 R for Apache Spark。
R 執行時間
Azure Synapse Analytics 支援 R 執行時間,其中包含許多熱門的開放原始碼 R 套件,包括 TidyVerse。 R 執行時間適用于所有 Apache Spark 3 集區。
若要深入瞭解每個執行時間上安裝的程式庫,您可以流覽下列頁面: - Azure Synapse Analytics 執行時間
建立和執行筆記本會話
Azure Synapse Notebook 是一個 Web 介面,可讓您建立包含即時程式碼、視覺效果和敘事文字的檔案。 筆記本是驗證想法和使用快速實驗從您的資料取得見解的絕佳位置。 筆記本也廣泛使用於資料準備、資料視覺效果、機器學習和其他巨量資料案例。
若要在 Synapse 筆記本中開始使用 R,您可以將語言選項 設定 為 SparkR (R) 來變更主要語言。
此外,您可以在一個筆記本中指定資料格開頭的語言 magic 命令,以使用多種語言。
%%sparkr
# Enter your R code here
若要深入瞭解 Azure Synapse Analytics 內的筆記本,您可以流覽如何 管理筆記本的 指南。
安裝套件
程式庫提供您可能想要包含在程式或專案中的可重複使用程式碼。 若要讓協力廠商或本機建置的程式碼可供您的應用程式使用,您可以在其中一個無伺服器 Apache Spark 集區或筆記本會話上安裝程式庫。
管理 R 工作區套件
在 Synapse 中,工作區套件可以是自訂或私人 R tar.gz 檔案。 您可以將這些套件上傳至您的工作區,稍後將它們指派給特定的無伺服器 Apache Spark 集區。 指派之後,這些工作區套件會自動安裝在對應集區上啟動的所有 Spark 集區會話上。
若要深入瞭解如何管理工作區程式庫,請參閱下列文章: - 管理工作區套件
管理 R 會話
執行互動式資料分析或機器學習時,您可以嘗試較新的套件,或可能需要 Apache Spark 集區上目前無法使用的套件。 使用者現在可以使用會話範圍套件來新增、管理及更新會話相依性,而不是更新集區設定。
- 當您安裝會話範圍的程式庫時,只有目前的筆記本可以存取指定的程式庫。
- 這些程式庫不會影響使用相同 Spark 集區的其他會話或作業。
- 這些程式庫會安裝在基底執行時間和集區層級程式庫之上。
- 筆記本程式庫的優先順序最高。
- 會話範圍的 R 程式庫不會跨會話保存。 執行相關的安裝命令時,會在每個會話開始時安裝這些程式庫
- 會話範圍的 R 程式庫會自動安裝在驅動程式和背景工作節點
例如,使用者可以從 CRAN 和 CRAN 快照集安裝 R 程式庫。 在下列範例中, Highcharter 是 R 視覺效果的熱門套件。 我可以使用下列命令,在 Apache Spark 集區中的所有節點上安裝此套件:
install.packages("highcharter", repos = "https://cran.microsoft.com/snapshot/2021-07-16/")
若要深入瞭解如何管理會話 R 程式庫,您可以流覽下列文章: 管理 R 會話套件
筆記本公用程式
Microsoft Spark 公用程式 (MSSparkUtils) 是內建套件,可協助您輕鬆執行一般工作。 您可以使用 MSSparkUtils 來處理檔案系統、取得環境變數、將筆記本鏈結在一起,以及使用秘密。 R Notebook 支援 MSSparkUtils。
若要開始使用,您可以執行下列命令:
library(notebookutils)
mssparkutils.fs.help()
若要深入瞭解支援的 MSSparkUtils 命令,請流覽下列文章: 使用 Microsoft Spark 公用程式
使用 SparkR
SparkR 是一種 R 套件,提供輕量前端以使用來自 R 的 Apache Spark。SparkR 提供分散式資料框架實作,支援選取、篩選、匯總等作業。SparkR 也支援使用 MLlib 的分散式機器學習。
從本機 R data.frame 建立 SparkR 資料框架
建立 DataFrame 最簡單的方式是將本機 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
使用 Spark 資料來源 API 建立 SparkR 資料框架
SparkR 支援透過 SparkDataFrame 介面在各種資料來源上作業。 從資料來源 read.df
建立 DataFrame 的一般方法是 。 這個方法會採用檔案要載入的路徑,以及資料來源的類型。 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)
使用 Spark SQL 建立 SparkR 資料框架
您也可以使用 Spark SQL 查詢來建立 SparkR DataFrame。
# 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 是 Apache Spark 的 R 介面。 它提供使用熟悉 R 介面與 Spark 互動的機制。
若要建立 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')
下一步
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應