无法将 CSV 文件从 Databricks 集群 DBFS 导入 h2o

问题描述

我已经在我的 AWS Databricks 集群上成功安装了 h2o,然后成功启动了 h2o 服务器:

h2o.init()

当我尝试导入存储在我的 Databricks DBFS 中的 iris CSV 文件时:

train,valid = h2o.import_file(path="/FileStore/tables/iris.csv").split_frame(ratios=[0.7])

我收到一个 H2OResponseError:服务器错误 water.exceptions.H2ONotFoundArgumentException

CSV 文件绝对存在;在同一个 Databricks 笔记本中,我可以将它直接读入 DataFrame 并使用完全相同的完全限定路径查看内容

df_iris = ks.read_csv("/FileStore/tables/iris.csv")
df_iris.head()

我也试过打电话:

h2o.upload_file("/FileStore/tables/iris.csv")

但无济于事;我收到 H2ovalueError: File /FileStore/tables/iris.csv 不存在。我也试过直接从本地计算机(C 盘)上传文件,但也没有成功。

我尝试不使用完全限定的路径,而只是指定文件名,但我遇到了相同的错误。我已通读 H2O 文档并在网上搜索,但找不到以前遇到过此问题的任何人。

有人可以帮我吗?

谢谢。

解决方法

H2O 可能不明白这个路径在 DBFS 上。您可以尝试指定路径 /dbfs/FileStore/tables/iris.csv - 在这种情况下,它将被读取为“本地文件”,或者尝试使用模式指定完整路径,例如 dbfs:/FileStore/tables/iris.csv - 但这可能需要特定于 DBFS 的 jar用于 H2O。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...