跳到内容

SparkR 是一个 R 包,它提供了一个轻量级前端,用于在 R 中使用 Spark。

安装 SparkR

SparkR 库需要在 $SPARK_HOME/R/lib 中创建。这可以通过运行脚本 $SPARK_HOME/R/install-dev.sh 来完成。默认情况下,上述脚本使用 R 的系统级安装。但是,通过在运行 install-dev.sh 脚本之前设置环境变量 R_HOME 为 R 安装基础目录的完整路径,可以将其更改为 R 的任何用户安装位置。示例

# where /home/username/R is where R is installed and /home/username/R/bin contains the files R and RScript
export R_HOME=/home/username/R
./install-dev.sh

SparkR 开发

构建 Spark

使用 MavenSBT 构建 Spark,并包含 -Psparkr 配置文件以构建 R 包。例如,要使用默认的 Hadoop 版本,您可以运行

# Maven
./build/mvn -DskipTests -Psparkr package

# SBT
./build/sbt -Psparkr package

运行 SparkR

您可以通过启动 SparkR shell 来开始使用 SparkR,命令如下:

./bin/sparkR

sparkR 脚本默认在本地模式下使用 Spark 自动创建一个 SparkContext。要为自动创建的 SparkContext 指定集群的 Spark 主节点,您可以运行

./bin/sparkR --master "local[2]"

要设置其他选项,如驱动程序内存(driver memory)、执行器内存(executor memory)等,您可以将 spark-submit 参数传递给 ./bin/sparkR

在 RStudio 中使用 SparkR

如果您希望在 RStudio 中使用 SparkR,请参考 SparkR 文档

修改 SparkR

针对 Spark 贡献的说明也适用于 SparkR。如果您只更改 R 文件(即 不更改 Scala 文件),那么您可以只使用 R/install-dev.sh 重新安装 R 包并测试您的更改。完成更改后,请为其包含单元测试,并使用 R/run-tests.sh 脚本运行现有单元测试,如下所述。

生成文档

SparkR 文档(Rd 文件和 HTML 文件)不是源代码仓库的一部分。要生成它们,您可以运行脚本 R/create-docs.sh。此脚本使用 devtoolsknitr 来生成文档,这些包在使用脚本之前需要安装在机器上。此外,您可能需要安装这些先决条件。另请参阅 R/DOCUMENTATION.md

示例,单元测试

SparkR 在 examples/src/main/r 目录中附带了几个示例程序。要运行其中一个,请使用 ./bin/spark-submit <filename> <args>。例如

./bin/spark-submit examples/src/main/r/dataframe.R

您可以按照运行 R 测试下的说明运行 R 单元测试。

在 YARN 上运行

./bin/spark-submit 也可以用于向 YARN 集群提交作业。在此之前,您需要设置 YARN 配置目录。例如,在 CDH 上,您可以运行

export YARN_CONF_DIR=/etc/hadoop/conf
./bin/spark-submit --master yarn examples/src/main/r/dataframe.R