这是错误消息:
> h2o.init()
Error in dirname(path) : path too long
In addition: There were 12 warnings (use warnings() to see them)
这是警告信息之一(其他类似):
> warnings()
Warning messages:
1: In normalizePath(path.expand(path), winslash, mustWork) :
path[1]="\\FILE-EM1-06/USERDATA2$/john134/My Documents/./../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../..": The filename or extension is too long
知道如何解决此错误吗?
由于
答案 0 :(得分:2)
似乎Windows路径字符串限制为(可能)256长度。通常,设置路径setwd(shorterExistingWorkDir)
可以解决您的问题。
答案 1 :(得分:1)
当调用h2o.init()时,R环境发出后端中h2o应用程序(实际上是Web服务器)的启动信号,当您将H2O软件包安装到R中时,该应用程序已安装。本地运行时环境使用该位置的完整路径H2O jar文件所在的位置。由于软件包安装在文件系统中嵌套文件夹的深处,因此它跨越OS路径256字符长度的有效限制,无法启动后端H2O服务器,您会看到此错误。在您的情况下,您正在使用外部路径,因此在路径中添加更多字符,以使问题更严重..
例如,h2o.jar位于我的OSX机器中,如下所示:
/Library/Frameworks/R.framework/Resources/library/h2o <-- H2O package Path
/Library/Frameworks/R.framework/Resources/library/h2o/java/h2o.jar <-- Jar Path
当您使用Windows时,您需要的是找到将此路径降低到操作系统限制的方法,它将起作用。
另一个解决方案是分别运行h2o.jar,然后使用R连接到H2O集群。步骤如下:
因此,如果已经有H2O集群正在运行,h2o.init()将连接到正在运行的H2O集群,而不是启动它,您将通过上面的问题。
如果您遇到任何问题请写在这里,我们会帮助您。
答案 2 :(得分:1)
我在这个问题上苦苦挣扎,包括升级。
大多数人都认为你确实只是设置了一条令人难以置信的长路。我不认为是这种情况(至少不适合我)。这是PATH可以设置在网络驱动器或其他底层映射路径更复杂的设备上。
H2O论坛上的相关主题是here:
主要问题是用户有一个不符合标准的Windows驱动器,即“C://”等。相反,用户有一个网络驱动器 (
DTCHYB-AZPX015/)
。这导致搜索配置时出现问题 文件,因为没有“root”(在这种情况下,“root”正在达到你的胜利 驾驶)。由于没有“根”,搜索的路径不断扩大 直到它导致R出错并出现上述异常。修复是在调用
h2o.init()
时不搜索配置。相反,只有在用户要求时才搜索配置。我的建议 是向名为h2o.init()
的{{1}}添加新字段。这个 默认情况下,字段将设置为TRUE。