任何人都可以告诉我是否可以在Windows 7环境下使用R studio从SparkR导入spark-csv包? 我的本地机器有R 3.2.2,spark-1.6.1-bin-hadoop2.6和java安装,但不是maven,scala等。 我不知道我是否想念任何东西才能打电话给spark-csv?我应该安装这个包(.jar文件)并放入一些文件夹吗?
这是我的剧本:
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的当前工作目录下了 flight&lt; - read.df(sqlContext,“nycflights13.csv”,“com.databricks.spark.csv”,header =“true”)
我收到此错误消息:
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 :(得分:0)
instead of this:
Sys.setenv('SPARKR_SUBMIT_ARGS'='"--packages" "com.databricks:spark-csv_2.11:1.4.0" "sparkr-shell"')
try this:
Sys.setenv(SPARKR_SUBMIT_ARGS="--packages com.databricks:spark-csv_2.11:1.4.0 sparkr-shell"
or perhaps this
sc <- sparkR.init(master="local[*]",appName="yourapp",sparkPackages="com.databricks:spark-csv_2.11:1.4.0")
答案 1 :(得分:0)
预构建的Spark发行版(如您正在使用的发行版)仍然使用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中汇总了一个在RStudio中使用SparkR的简短演示,您可能会觉得这很有用。