在jupyter笔记本中的python上使用 h2o 并收到错误消息:

...
/home/mapr/anaconda2/lib/python2.7/site-packages/h2o/backend/connection.pyc in _process_response(response, save_to)
    723         # Client errors (400 = "Bad Request", 404 = "Not Found", 412 = "Precondition Failed")
    724         if status_code in {400, 404, 412} and isinstance(data, (H2OErrorV3, H2OModelBuilderErrorV3)):
--> 725             raise H2OResponseError(data)
    726 
    727         # Server errors (notably 500 = "Server Error")
H2OResponseError: Server error water.exceptions.H2ONotFoundArgumentException: 
Error: File <path to data file I'm trying to import> does not exist.

尝试导入数据时

train = h2o.import_file(path = os.path.realpath("relative path to data file"))

然而,该文件确实存在于指定的路径上 . 为什么会这样?

Details

关于 h2o deeplearning example,用于从jupyter笔记本中的python代码访问 h2o 服务 . 一切正常,直到part需要导入 .csv 数据,例如 .

spiral = h2o.import_file(path = os.path.realpath("../data/spiral.csv"))

此时引发上述错误 . 源代码评论说

#在这种情况下,群集正在我们的笔记本电脑上运行 . 数据文件按其相对位置导入此笔记本 .

但是,跑步的时候

os.path.exists(os.path.realpath("./data/<my data csv file>"))

在笔记本中,响应是 true . 因此看起来相对路径被python os包*识别,但是h2o.import_file()方法存在一些问题 .

这可能会发生什么?谢谢 .

注意:我正在使用实际运行h2o和jupyter-notebook服务的机器进行端口转发,例如:

远程机器:

$jupyter-notebook --no-browser --port=8889

本地机器:

$ssh -N -L localhost:8888:localhost:8889 myuser@mnode01

*目录结构是:

bin  
data
  |
  |_____ mydata.csv  
include  
lib  
remote-h2o.ipynb

UPDATE

想想找到了问题 . h2o python docs指定了

数据路径必须是H2O群集中每个节点的有效路径 . 如果H2O群集中的某个节点无法看到该文件,则H2O群集将抛出异常 .

这提出了一个问题,这是否意味着所有集群节点都需要具有相同的virtualenv(具有相同的绝对路径),我正在运行jupyter笔记本并保持数据/ mydata.csv?