【问题标题】:SparkR: unable to create the Spark sessionSparkR:无法创建 Spark 会话
【发布时间】:2018-12-23 23:48:09
【问题描述】:

我正在尝试在 Windows 机器上运行 SparkR。

我在 R Studio 中运行了以下命令:

library(SparkR, lib.loc = c(file.path(Sys.getenv("SPARK_HOME"), "R", "lib")))

运行成功。

我在创建 Spark 会话时遇到错误:

sparkR.session(master = "local[*]", sparkConfig = list(spark.driver.memory = "2g"))

我收到以下错误:

Spark package found in SPARK_HOME: C:\Users\p2\Downloads\spark\spark-2.3.1-bin-hadoop2.7\spark-2.3.1-bin-hadoop2.7
Error in value[[3L]](cond) : 
  Java version check failed. Please make sure Java is installed and set JAVA_HOME to point to the installation directory.simpleWarning: running command 'C:\Windows\system32\cmd.exe /c C:\Program Files\Java\jre1.8.0_112\bin\java -version' had status 1

我已经安装了 Java 8 并且还设置了JAVA_HOME

不过,问题还没有解决。我该如何解决这个问题?

【问题讨论】:

标签: r apache-spark sparkr


【解决方案1】:

当我设置 Java Home 和 SPARK_HOME 时,我在 Windows 笔记本电脑上连接了 sparklyr

java_path <- normalizePath('C:/Program Files/Java/jre1.8.0_66')
Sys.setenv(JAVA_HOME=java_path)
library(sparklyr)
sc <- spark_connect(master = "local")

设置JAVA_HOME后

library(sparklyr)
sc <- spark_connect(master = "local")
spark_path = sc$spark_home
spark_disconnect(sc)

Sys.setenv(
SPARK_HOME=spark_path
)
library(SparkR, lib.loc = c(file.path(Sys.getenv("SPARK_HOME"), "R", "lib")))
sparkR.session(master = "local[*]", sparkConfig = list(spark.driver.memory = 
"2g"))

【讨论】:

    【解决方案2】:

    终于解决了我的问题。问题出在我的 JAVA_HOME 路径上,它失败了,因为 Program Files 包含空格。

    我将 java 文件夹从 Program Files 复制到另一个文件夹:C:\\Users\\p2\\Downloads\\java\\jre1.8.0_171 并在 R 程序中将其设置为 JAVA_HOME

    Sys.setenv(JAVA_HOME="C:\Users\p2\Downloads\java\jre1.8.0_171")

    这行得通。

    【讨论】:

      【解决方案3】:

      您不必移动 java 文件夹来下载。以下代码对我有用。

      Sys.getenv("JAVA_HOME")
      [1] "C:\\Program Files\\Java\\jre1.8.0_171"
      Sys.setenv("JAVA_HOME" = "C:\\Progra~1\\Java\\jre1.8.0_171")
      Sys.getenv("JAVA_HOME")
      [1] "C:\\Progra~1\\Java\\jre1.8.0_171"
      

      符号~1 替换路径上的空格。我希望它能像我一样工作。

      【讨论】:

      • 我试过你的解决方案,我得到这个错误:running command 'C:\Windows\system32\cmd.exe /c C:\Progra~1\Java\jdk1.8.0_112\jre\bin\java -version' had status 1
      • 试试java jdk文件Sys.setenv("JAVA_HOME" = "C:\\Progra~1\\Java\\jdk1.8.0_151")不要用jre1,应该存放在以下路径`C:\Program Files\Java`
      【解决方案4】:

      我观察到另一件事,设置 JRE 或 JDK 文件夹的路径。不再包括 Bin。使用新的 sparkR 版本,它适用于我......

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-10-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-03-05
        • 1970-01-01
        • 2019-09-22
        • 2016-03-03
        相关资源
        最近更新 更多