谁能告诉我,在Windows7环境下,是否可以使用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的当前工作目录下了。
flights <- 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谢谢你的建议。
发布于 2016-04-22 06:02:08
而不是这样:
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")发布于 2016-04-27 20:41:01
预构建的Spark发行版,如您正在使用的发行版,仍然是使用Scala 2.10构建的,而不是2.11。因此,您需要一个针对Scala2.10的spark-csv构建,而不是针对Scala2.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,你可能会发现它很有用。
https://stackoverflow.com/questions/36779542
复制相似问题