【问题标题】:Error while using h2o.init in R在 R 中使用 h2o.init 时出错
【发布时间】:2017-08-15 21:12:28
【问题描述】:

这是错误信息:

   > 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

知道如何解决这个错误吗?

谢谢

【问题讨论】:

  • 尝试选择(另一个)较短的路径名。或者路径名中可能有非法字符。
  • 感谢您的快速回复。它是为此目的的函数参数吗?选择的路径是任意的吗? @AleksandrVoitov
  • 只需通过 setwd("YourDirName") 更改工作目录,然后重试。
  • 就我而言,我遇到了这个问题,但工作目录设置正常。对我来说,这似乎是一个可能的 H2O 错误。
  • 我已经尝试重新安装。它已安装到 R 库中,我在使用多年之前从未遇到过这个问题。

标签: r h2o


【解决方案1】:

Windows 路径字符串的长度似乎限制为(可能)256。通常,设置路径 setwd(shorterExistingWorkDir) 可以解决您的问题。

【讨论】:

  • 我有同样的问题(我认为),但工作目录通常设置为合理的路径。就像这样一些错误的代码附加到一些内部 H2O 路径变量。
【解决方案2】:

当调用 h2o.init() 时,R 环境会发出在后端启动 h2o 应用程序(实际上是 Web 服务器)的信号,该应用程序是在您将 H2O 包安装到 R 时安装的。本地运行时环境使用该位置的完整路径H2O jar 文件所在的位置。由于软件包安装在文件系统中嵌套文件夹的深处,它超过了操作系统路径 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 并解压缩到靠近根目录的文件夹,这样您就不会再次达到 265 个字符的限制。同时安装 3.10.4.2 R 包。 (尽量保持相同的版本)
  2. 运行 H2O > java -jar h2o.jar
  3. 从 RStudio 控制台尝试 > h2o.init()

因此,如果已经有 H2O 集群在运行,那么 h2o.init() 将连接到正在运行的 H2O 集群而不是启动一个集群,您将绕过上述问题。

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

【讨论】:

    【解决方案3】:

    我在这个问题上遇到了很多困难,包括升级。

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

    H2O 论坛上的一个相关主题是here

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

    解决方法是在调用 h2o.init() 时不搜索配置。相反,仅在用户要求时才搜索配置。我的提议 就是给h2o.init()添加一个新字段,叫做ignore_config。这 字段将默认设置为 TRUE。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-06-02
      • 2020-12-16
      • 1970-01-01
      • 2016-11-04
      • 1970-01-01
      • 2017-09-16
      • 2012-06-12
      • 2020-09-17
      相关资源
      最近更新 更多