是否可以在没有安装R解释器的情况下在Spark中运行SparkR程序?

时间:2015-09-17 04:41:01

标签: r apache-spark sparkr

我的问题是关于在没有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)

2 个答案:

答案 0 :(得分:1)

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

请勿尝试在您提交的应用程序中发送您的R解释器,因为超级应用程序在您的群集中分发会过于繁重。

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

答案 1 :(得分:0)

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