问题描述
这真令人沮丧。我花了几天的时间查看所有在stackoverflow和Web上发现的问题,并逐步执行所有说明,但我无法弄清楚。我放弃了... 这是我的错误输出:
Spark package found in SPARK_HOME: C:/spark/spark_3_0_1_bin_hadoop3_2 Launching java with spark-submit command
C:/spark/spark_3_0_1_bin_hadoop3_2/bin/spark-submit2.cmd
--driver-memory "2g" sparkr-shell C:\Users\user\AppData\Local\Temp\RtmpgT8rjY\backend_port11e45fad26cf
Error in sparkR.sparkContext(master,appName,sparkHome,sparkConfigMap: JVM is not ready after 10 seconds
(...为什么启动“ spark-submit2.cmd”而不是“ spark-submit”?)
运行此代码后:
> Sys.setenv(SPARK_HOME = "C:/spark/spark_3_0_1_bin_hadoop3_2"
> library(SparkR,lib.loc = c(file.path(Sys.getenv("SPARK_HOME"),"R","lib")))
> sparkR.session(master = "local[*]",sparkConfig = list(spark.driver.memory = "2g"))
到目前为止我所做的:
- 检查了最新的JRE版本(JRE_8u271),文件夹的权限和环境路径:一切正常
- rtools40-x86_64安装并设置路径,然后在RStudio中找到:C:\ rtools40 \ usr \ bin \ make.exe“
- 下载了最后一个预先构建的版本spark-3.0.1-bin-hadoop3.2.tgz,并在拥有所有者许可的情况下将其解压缩到c:\ spark(文件夹名称中没有空格!)),为了安全起见,我已尽可能用下划线_替换了文件夹名称中的所有标点符号请参阅上面的脚本。然后设置环境路径
- 检查是否已为C:\ spark \ spark_3_0_1_bin_hadoop3_2设置了所有用户的所有权限:确定
- 手动解压缩sparkr.zip(包含在C:\ spark \ spark_3_0_1_bin_hadoop3_2 \ R \ lib中)到我的R库C:\ Program Files \ R \ R-4.0.3 \ library
- 下载了winutils for hadoop v 3.0.0,并在C:\ winutils \ bin中解压并设置了路径
通过Windows Prompt成功启动sparkR。我还启动了火花提交,一切正常。
我的环境路径:
- JAVA_HOME:C:\ Java
- R_HOME:C:\ Program Files \ R \ R-4.0.3 \ bin \ x64
- RTools:C:\ rtools40
- SPARK_HOME:C:\ spark \ spark_3_0_1_bin_hadoop3_2
- HADOOP_HOME:C:\ winutils
- 路径:C:\ Program Files \ R \ R-4.0.3 \ bin \ x64; C:\ rtools40; C:\ rtools40 \ mingw64 \ bin; C:\ Java; [...]
我也使用 Sparklyr ,并且效果很好,可以在RStudio中正常连接!但不是 SparkR ...
RStudio Version 1.3.1093
> sessionInfo()
R version 4.0.3 (2020-10-10)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 19041)
Matrix products: default
locale:
[1] LC_COLLATE=Italian_Italy.1252 LC_CTYPE=Italian_Italy.1252
[3] LC_MONETARY=Italian_Italy.1252 LC_NUMERIC=C
[5] LC_TIME=Italian_Italy.1252
attached base packages:
[1] stats graphics Grdevices utils datasets methods base
other attached packages:
[1] SparkR_3.0.1
loaded via a namespace (and not attached):
[1] compiler_4.0.3 tools_4.0.3
谢谢 加布里埃尔
解决方法
最后我知道了!
我无法解释为什么,但是我只在Sys.setnev中添加了一个'SPARKR_SUBMIT_ARGS'来读取csv,正如我在Spark 1的一些旧主题中所发现的那样,here并初始化了sparkR会话。
这是我的新代码行:
SPARK_HOME = "C:/spark/spark_3_0_1_bin_hadoop3_2"
Sys.setenv('SPARKR_SUBMIT_ARGS'='"--packages" "com.databricks:spark-csv_2.10:1.4.0" "sparkr-shell"')
library(SparkR,lib.loc = c(file.path(Sys.getenv("SPARK_HOME"),"R","lib")))
sparkR.session(master = "local",sparkHome = SPARK_HOME)
此外,当我在使用read.df函数读取csv时遇到问题时,我更改了不带\ BIN文件夹的hadoop路径,如下所示,现在一切正常:
HADOOP_HOME :C:\ winutils
希望对遇到我同样问题的所有人有用。