SynapseML 的 R 设置和示例
安装
要求: 确保您的机器上安装了R和 devtools。
同时确保你已经安装了Apache Spark。如果你正在使用Sparklyr,你可以使用spark-install。请确保指定正确的版本。截至撰写本文时,应该是version="3.2"。spark_install有点古怪,可能会安装一个稍微不同的版本。请确保你得到的版本是你想要的。
在Windows上,下载WinUtils.exe并将其复制到Spark安装的bin
目录中,例如C:\Users\user\AppData\Local\Spark\spark-3.3.2-bin-hadoop3\bin
要安装当前的SynapseML R包,首先需要安装synapseml-core:
...
devtools::install_url("https://mmlspark.azureedge.net/rrr/synapseml-core-0.11.0.zip")
...
然后根据您的预期用途安装以下任意或所有软件包:
synapseml-cognitive, synapseml-deep-learning, synapseml-lightgbm, synapseml-opencv, synapseml-vw
换句话说:
...
devtools::install_url("https://mmlspark.azureedge.net/rrr/synapseml-cognitive-0.11.0.zip")
devtools::install_url("https://mmlspark.azureedge.net/rrr/synapseml-deep-learning-0.11.0.zip")
devtools::install_url("https://mmlspark.azureedge.net/rrr/synapseml-lightgbm-0.11.0.zip")
devtools::install_url("https://mmlspark.azureedge.net/rrr/synapseml-opencv-0.11.0.zip")
devtools::install_url("https://mmlspark.azureedge.net/rrr/synapseml-vw-0.11.0.zip")
...
导入库并设置spark上下文
安装所有依赖项可能很耗时。完成后,运行:
...
library(sparklyr)
library(dplyr)
config <- spark_config()
config$sparklyr.defaultPackages <- "com.microsoft.azure:synapseml_2.12:1.0.8"
sc <- spark_connect(master = "local", config = config)
...
这将在您的本地机器上创建一个spark上下文。
然后我们需要导入R的包装器:
...
library(synapseml.core)
library(synapseml.cognitive)
library(synapseml.deep.learning)
library(synapseml.lightgbm)
library(synapseml.opencv)
library(synapseml.vw)
...
示例
我们可以使用R中的faithful数据集:
...
faithful_df <- copy_to(sc, faithful)
cmd_model = ml_clean_missing_data(
x=faithful_df,
inputCols = c("eruptions", "waiting"),
outputCols = c("eruptions_output", "waiting_output"),
only.model=TRUE)
sdf_transform(cmd_model, faithful_df)
...
你应该看到输出:
...
# Source: table<sparklyr_tmp_17d66a9d490c> [?? x 4]
# Database: spark_connection
eruptions waiting eruptions_output waiting_output
<dbl> <dbl> <dbl> <dbl>
1 3.600 79 3.600 79
2 1.800 54 1.800 54
3 3.333 74 3.333 74
4 2.283 62 2.283 62
5 4.533 85 4.533 85
6 2.883 55 2.883 55
7 4.700 88 4.700 88
8 3.600 85 3.600 85
9 1.950 51 1.950 51
10 4.350 85 4.350 85
# ... with more rows
...
Azure Databricks
在 Azure Databricks 中,您可以从 URL 安装 devtools 和 spark 包,然后使用 spark_connect 方法 = "databricks":
install.packages("devtools")
devtools::install_url("https://mmlspark.azureedge.net/rrr/synapseml-1.0.8.zip")
library(sparklyr)
library(dplyr)
sc <- spark_connect(method = "databricks")
faithful_df <- copy_to(sc, faithful)
unfit_model = ml_light_gbmregressor(sc, maxDepth=20, featuresCol="waiting", labelCol="eruptions", numIterations=10, unfit.model=TRUE)
ml_train_regressor(faithful_df, labelCol="eruptions", unfit_model)
从源代码构建
我们的R绑定是作为正常构建过程的一部分构建的。要快速构建,请从synapseml目录的根目录开始,并找到生成的文件。例如,要找到深度学习的R文件,请运行
sbt packageR
ls ./deep-learning/target/scala-2.12/generated/src/R/synapseml/R
然后你可以在终端中运行R并直接安装上述文件:
...
devtools::install_local("./deep-learning/target/scala-2.12/generated/src/R/synapseml/R")
...