我的问题是关于在没有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)
答案 0 :(得分:1)
不,你不能。您需要安装R以及所需的软件包,否则您的机器不会知道她需要解释R。
请勿尝试在您提交的应用程序中发送您的R解释器,因为超级应用程序在您的群集中分发会过于繁重。
您需要一个配置管理系统,允许您定义IT基础架构的状态,然后自动强制执行正确的状态。
答案 1 :(得分:0)
没有。 SparkR的工作原理是让R进程通过rJava与Spark通信。您仍然需要在计算机上安装R,就像您需要安装JVM一样。