我正在尝试在SparkR上执行随机森林算法,并安装了Spark 1.5.1。我没有清楚的想法,为什么我得到错误 -
Error: could not find function "includePackage"
此外,即使我在代码中使用mapPartitions函数,我也会收到错误 -
Error: could not find function "mapPartitions"
请找到以下代码:
rdd <- SparkR:::textFile(sc, "http://localhost:50070/explorer.html#/Datasets/Datasets/iris.csv",5)
includePackage(sc,randomForest)
rf <- mapPartitions(rdd, function(input) {
## my function code for RF
}
答案 0 :(得分:1)
这更像是一个评论和一个交叉问题而不是一个答案(由于声誉而不允许评论)但只是为了更进一步,如果我们使用collect方法将rdd转换回R数据帧,如果数据太大就不会产生效果,在R中执行需要很长时间。
这也意味着我们可以使用任何R包,例如markovChain或使用相同方法的神经网络。
答案 1 :(得分:0)
请检查sparkR
http://spark.apache.org/docs/latest/api/R/index.html中可能使用的功能
这不包括函数mapPartitions()
或includePackage()
#For reading csv in sparkR
sparkRdf <- read.df(sqlContext, "./nycflights13.csv",
"com.databricks.spark.csv", header="true")
#Possible way to use `randomForest` is to convert the `sparkR` data frame to `R` data frame
Rdf <- collect(sparkRdf)
#compute as usual in `R` code
>install.packages("randomForest")
>library(rainForest)
......
#convert back to sparkRdf
sparkRdf <- createDataFrame(sqlContext, Rdf)