2016-04-21 50 views
1

任何人都可以告訴我是否可以在Windows 7環境下使用R studio從SparkR導入spark-csv包? 我的本地機器有R 3.2.2,spark-1.6.1-bin-hadoop2.6和java已經安裝,但沒有安裝maven,scala等。 我不知道我爲了調用spark-csv而錯過任何東西嗎?我應該安裝這個軟件包(.jar文件)並放入某個文件夾中嗎?在Windows環境下從Rstudio加載spark-csv

這裏是我的腳本:

library(rJava) 
Sys.setenv(SPARK_HOME = 'C:/Users/***/spark-1.6.1-bin-hadoop2.6') 

.libPaths(c(file.path(Sys.getenv('SPARK_HOME'), 'R', 'lib'), .libPaths())) 
library(SparkR) 

Sys.setenv('SPARKR_SUBMIT_ARGS'='"--packages" "com.databricks:spark-csv_2.11:1.4.0" "sparkr-shell"') 

sc <- sparkR.init(master = "local[*]", sparkEnvir = list(spark.driver.memory="2g")) 
sqlContext <- sparkRSQL.init(sc) 

我能夠調用sparkR庫,並啓動SC,這裏是信息:

Launching java with spark-submit command C:/Users/***/spark-1.6.1-bin-hadoop2.6/bin/spark-submit.cmd --driver-memory "2g" "--packages" "com.databricks:spark-csv_2.11:1.4.0" "sparkr-shell" C:\Users\hwu\AppData\Local\Temp\2\Rtmp46MVve\backend_port13b423eed9c 

然後,當我嘗試加載本地CSV文件,它失敗了。我把csv文件放在R的當前工作目錄下。
航班< - read.df(sqlContext, 「nycflights13.csv」, 「com.databricks.spark.csv」,標題= 「真」)

我得到這個錯誤信息:

Error in invokeJava(isStatic = TRUE, className, methodName, ...) : 
org.apache.spark.SparkException: Job aborted due to stage failure: Task 0 in stage 0.0 failed 1 times, most recent failure: Lost task 0.0 in stage 0.0 (TID 0, localhost): java.lang.NullPointerException 
at java.lang.ProcessBuilder.start(Unknown Source) 
at org.apache.hadoop.util.Shell.runCommand(Shell.java:482) 
at org.apache.hadoop.util.Shell.r...(Shell.java:455) 
at org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:715) 
at org.apache.hadoop.fs.FileUtil.chmod(FileUtil.java:873) 
at org.apache.hadoop.fs.FileUtil.chmod(FileUtil.java:853) 
at org.apache.spark.util.Utils$.fetchFile(Utils.scala:406) 
at org.apache.spark.executor.Executor$$anonfun$org$apache$spark$executor$Executor$$updateDependencies$5.apply(Executor.scala:405) 
at org.apache.spark.executor.Executor$$anonfun$org$apache$spark$executor$Executor$$updateDependencies$5.apply(Executor.scala:397) 
at scala.collection.TraversableLike$WithFilter$$anonfun$foreach$1.apply(TraversableLike.scala:7 

感謝您的任何建議。

回答

0

,而不是這樣的:

Sys.setenv('SPARKR_SUBMIT_ARGS'='"--packages" "com.databricks:spark-csv_2.11:1.4.0" "sparkr-shell"') 

試試這個:

Sys.setenv(SPARKR_SUBMIT_ARGS="--packages com.databricks:spark-csv_2.11:1.4.0 sparkr-shell" 

或也許這

sc <- sparkR.init(master="local[*]",appName="yourapp",sparkPackages="com.databricks:spark-csv_2.11:1.4.0") 
+0

嗨xyzzy,謝謝你的迴應。我試過你的方法,兩種方式。但它不起作用。像以前一樣的錯誤按摩。我應該下載spark-csv包並以某種方式安裝它?是關於環境的道路嗎?我已經在我的Path變量上設置了java,spark,r。 –

0

預建星火發行版,如您使用的是一個,還是用Scala 2.10構建,而不是2.11。因此,您需要構建一個適用於Scala 2.10的spark-csv版本,而不是Scala 2.11(作爲您在代碼中使用的版本)。將com.databricks:spark-csv_2.11:1.4.0更改爲com.databricks:spark-csv_2.10:1.4.0,並且您應該沒事(另請參閱my answer in a relevant SO question)。

我從來沒有在Windows中測試過Spark,但是我最近在一個blog post中使用SparkR在RStudio中進行了一個簡短演示,您可能會發現它很有用。

+0

謝謝你的回覆。我嘗試使用com.databricks:spark-csv_2.10:1.4.0,但在Windows下無法使用。我想知道我們是否需要在本地機器上下載並安裝Scala 2.10? –

相關問題