2015-05-05 25 views
14

花費很長的時間去解決如何安裝SparkR我想可能有一些問題,與包裝後...SparkR filterRDD和flatMap不工作

請記住我是很新的火花所以我不當然,如果我做了正確的事情。

從我已經安裝了R A新鮮的Ubuntu EC2 64位實例和JDK

我GIT克隆apache的火花回購和內置的:

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())) 

然後開始RI嘗試通過給快速入門指南運行後3210

下面是下面的步驟我把...

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([email protected], "toString") 
4: paste(callJMethod([email protected], "toString"), "\n", sep = "") 
3: cat(paste(callJMethod([email protected], "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 

這裏任何幫助,將不勝感激....

回答

7

因此,這實際上是在RDD的表演方法的錯誤在SparkR和我已經記錄在https://issues.apache.org/jira/browse/SPARK-7512

但是,這個錯誤不應該以任何方式影響你的計算。所以,如果你代替

filteredRDD <- SparkR:::filterRDD(textFile, function(line){ grepl("Spark", line)}) 

那麼錯誤信息應該消失