在R中使用h2o.init时出错

时间:2017-03-23 10:53:14

标签: r h2o

这是错误消息:

   > 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

知道如何解决此错误吗?

由于

3 个答案:

答案 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集群。步骤如下:

  1. 下载H2O 3.10.4.2并解压缩到root附近的文件夹,这样就不会再次达到265 char限制。另外安装3.10.4.2 R Package。 (尽量保持相同版本)
  2. Run H2O&gt; java -jar h2o.jar
  3. 从RStudio控制台尝试&gt; h2o.init()
  4. 因此,如果已经有H2O集群正在运行,h2o.init()将连接到正在运行的H2O集群,而不是启动它,您将通过上面的问题。

    如果您遇到任何问题请写在这里,我们会帮助您。

答案 2 :(得分:1)

我在这个问题上苦苦挣扎,包括升级。

大多数人都认为你确实只是设置了一条令人难以置信的长路。我不认为是这种情况(至少不适合我)。这是PATH可以设置在网络驱动器或其他底层映射路径更复杂的设备上。

H2O论坛上的相关主题是here

  

主要问题是用户有一个不符合标准的Windows驱动器,即“C://”等。相反,用户有一个网络驱动器   (DTCHYB-AZPX015/)。这导致搜索配置时出现问题   文件,因为没有“root”(在这种情况下,“root”正在达到你的胜利   驾驶)。由于没有“根”,搜索的路径不断扩大   直到它导致R出错并出现上述异常。

     

修复是在调用h2o.init()时不搜索配置。相反,只有在用户要求时才搜索配置。我的建议   是向名为h2o.init()的{​​{1}}添加新字段。这个   默认情况下,字段将设置为TRUE。