0

我的问题是关于在没有 R 依赖的情况下在 spark 中运行 sparkR 程序的可行性。

换句话说,当机器中没有安装 R 解释器时,我可以在 spark 中运行以下程序吗?

#set env var
Sys.setenv(SPARK_HOME="/home/fazlann/Downloads/spark-1.5.0-bin-hadoop2.6")
#Tell R where to find sparkR package 
.libPaths(c(file.path(Sys.getenv("SPARK_HOME"),"R","lib"), .libPaths()))

#load sparkR into this environment
library(SparkR)

#create the sparkcontext 
sc <- sparkR.init(master = "local")

#to work with DataFrames we will need a SQLContext, which can be created from the SparkContext
sqlContext <- sparkRSQL.init(sc)

name <- c("Nimal","Kamal","Ashen","lan","Harin","Vishwa","Malin")
age <- c(23,24,12,25,31,22,43)
child <- c(TRUE,TRUE,FALSE,FALSE,TRUE,FALSE,TRUE)

localdf <- data.frame(name,age,child)

#convert R dataframe into spark DataFrame
sparkdf <- createDataFrame(sqlContext,localdf);

#since we are passing a spark DataFrame into head function, the method gets executed in spark
head(sparkdf)
4

2 回答 2

1

不,你不能。您需要安装 R 以及所需的软件包,否则您的机器不会知道她需要解释 R。

不要尝试在您提交的应用程序中发布您的 R 解释器,因为 uber 应用程序将过于繁重而无法在您的集群中分发。

您将需要一个配置管理系统,该系统允许您定义 IT 基础架构的状态,然后自动执行正确的状态。

于 2015-09-17T09:15:13.647 回答
0

不,SparkR 的工作原理是让一个 R 进程通过 rJava 与 Spark 通信。您仍然需要在您的机器上安装 R,就像您需要安装 JVM 一样。

于 2015-09-17T06:26:58.483 回答