【问题标题】:Load spark-csv from Rstudio under Windows environmentWindows 环境下从 Rstudio 加载 spark-csv
【发布时间】:2016-04-21 20:13:30
【问题描述】:

谁能告诉我是否可以在 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 的当前工作目录下。
航班

我收到此错误消息:

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

感谢您的建议。

【问题讨论】:

    标签: r apache-spark sparkr


    【解决方案1】:

    而不是这个:

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

    【讨论】:

    • 您好 xyzzy,感谢您的回复。我试过你的方法,两种方法。但它不起作用。与以前相同的错误按摩。我应该下载 spark-csv 包并以某种方式安装它吗?是关于环境路径吗?我已经在我的 Path 变量上设置了 java、spark、r。
    【解决方案2】:

    预构建的 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 的简短演示,您可能会发现它很有用。

    【讨论】:

    • 感谢您的回复。我尝试使用 com.databricks:spark-csv_2.10:1.4.0,但它在 Windows 下不起作用。我想知道我们是否需要在您的本地计算机上下载并安装 Scala 2.10?
    猜你喜欢
    • 2016-08-28
    • 2013-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-29
    • 1970-01-01
    相关资源
    最近更新 更多