SparkR filterRDD 和 flatMap 不工作
SparkR filterRDD and flatMap not working
在花了很长时间研究如何安装 SparkR 之后,我认为该软件包可能存在一些问题...
请记住,我是 spark 的新手,所以不确定我是否做对了。
我从新的 EC2 ubuntu 64 位实例安装了 R 和 JDK
我 git 克隆了 apache spark 存储库并构建了它:
git clone https://github.com/apache/spark.git
cd spark
build/mvn -DskipTests -Psparkr package
然后我更改了我的 .Rprofile
以通过包含以下行来引用 R 目录....
Sys.setenv(SPARK_HOME="/home/ubuntu/spark")
.libPaths(c(file.path(Sys.getenv("SPARK_HOME"), "R", "lib"), .libPaths()))
然后在启动 R 后,我尝试 运行 通过给出的快速入门指南 here
以下是我采取的以下步骤...
R> library(SparkR)
R> sc <- sparkR.init(master="local")
R> textFile <- SparkR:::textFile(sc, "/home/ubuntu/spark/README.md")
R> cc <- SparkR:::count(textFile)
R> t10 <- SparkR:::take(textFile,10)
到这里为止一切正常...下面的行不起作用...
R> SparkR:::filterRDD(textFile, function(line){ grepl("Spark", line)})
Error: class(objId) == "jobj" is not TRUE
R> traceback()
7: stop(sprintf(ngettext(length(r), "%s is not TRUE", "%s are not all TRUE"),
ch), call. = FALSE, domain = NA)
6: stopifnot(class(objId) == "jobj")
5: callJMethod(object@jrdd, "toString")
4: paste(callJMethod(object@jrdd, "toString"), "\n", sep = "")
3: cat(paste(callJMethod(object@jrdd, "toString"), "\n", sep = ""))
2: function (object)
standardGeneric("show")(x)
1: function (object)
standardGeneric("show")(x)
下面是另一个不起作用的示例。
R> SparkR:::flatMap(textFile,
function(line) {
strsplit(line, " ")[[1]]
})
Error: class(objId) == "jobj" is not TRUE
以下是我的会话信息...
R> > sessionInfo()
R version 3.2.0 (2015-04-16)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 14.04.2 LTS
locale:
[1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C
[3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8
[5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8
[7] LC_PAPER=en_US.UTF-8 LC_NAME=C
[9] LC_ADDRESS=C LC_TELEPHONE=C
[11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] SparkR_1.4.0
如有任何帮助,我们将不胜感激....
所以这实际上是 SparkR 中 RDD 的显示方法中的一个错误,我已经在 https://issues.apache.org/jira/browse/SPARK-7512
中记录了这个
但是这个错误应该不会以任何方式影响您的计算。因此,如果您改用
filteredRDD <- SparkR:::filterRDD(textFile, function(line){ grepl("Spark", line)})
然后错误消息应该消失
在花了很长时间研究如何安装 SparkR 之后,我认为该软件包可能存在一些问题...
请记住,我是 spark 的新手,所以不确定我是否做对了。
我从新的 EC2 ubuntu 64 位实例安装了 R 和 JDK
我 git 克隆了 apache spark 存储库并构建了它:
git clone https://github.com/apache/spark.git
cd spark
build/mvn -DskipTests -Psparkr package
然后我更改了我的 .Rprofile
以通过包含以下行来引用 R 目录....
Sys.setenv(SPARK_HOME="/home/ubuntu/spark")
.libPaths(c(file.path(Sys.getenv("SPARK_HOME"), "R", "lib"), .libPaths()))
然后在启动 R 后,我尝试 运行 通过给出的快速入门指南 here
以下是我采取的以下步骤...
R> library(SparkR)
R> sc <- sparkR.init(master="local")
R> textFile <- SparkR:::textFile(sc, "/home/ubuntu/spark/README.md")
R> cc <- SparkR:::count(textFile)
R> t10 <- SparkR:::take(textFile,10)
到这里为止一切正常...下面的行不起作用...
R> SparkR:::filterRDD(textFile, function(line){ grepl("Spark", line)})
Error: class(objId) == "jobj" is not TRUE
R> traceback()
7: stop(sprintf(ngettext(length(r), "%s is not TRUE", "%s are not all TRUE"),
ch), call. = FALSE, domain = NA)
6: stopifnot(class(objId) == "jobj")
5: callJMethod(object@jrdd, "toString")
4: paste(callJMethod(object@jrdd, "toString"), "\n", sep = "")
3: cat(paste(callJMethod(object@jrdd, "toString"), "\n", sep = ""))
2: function (object)
standardGeneric("show")(x)
1: function (object)
standardGeneric("show")(x)
下面是另一个不起作用的示例。
R> SparkR:::flatMap(textFile,
function(line) {
strsplit(line, " ")[[1]]
})
Error: class(objId) == "jobj" is not TRUE
以下是我的会话信息...
R> > sessionInfo()
R version 3.2.0 (2015-04-16)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 14.04.2 LTS
locale:
[1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C
[3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8
[5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8
[7] LC_PAPER=en_US.UTF-8 LC_NAME=C
[9] LC_ADDRESS=C LC_TELEPHONE=C
[11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] SparkR_1.4.0
如有任何帮助,我们将不胜感激....
所以这实际上是 SparkR 中 RDD 的显示方法中的一个错误,我已经在 https://issues.apache.org/jira/browse/SPARK-7512
中记录了这个但是这个错误应该不会以任何方式影响您的计算。因此,如果您改用
filteredRDD <- SparkR:::filterRDD(textFile, function(line){ grepl("Spark", line)})
然后错误消息应该消失