python - 有没有将 Pandas DataFrame 转换为 H2O Frame 的有效方法?
问题描述
我有一个 Pandas 数据框,我需要将其转换为 H2O 帧。我使用以下代码-
代码:
# Convert pandas dataframe to H2O frame
start_time = time.time()
input_data_matrix = h2o.H2OFrame(input_df)
logger.debug("3. Time taken to convert H2O Frame- " + str(time.time() - start_time))
输出:
2019-02-05 04:38:55,238 记录器调试 3. 转换 H2O 帧所需的时间 - 9320.119945764542
数据框(即input_df
)大小为 183K x 435,没有 null 或 NaN 值。
大约需要2个小时。有没有更好的方法来执行这个操作?
解决方案
将 pandas 数据框保存到 csv 文件。(如果您首先从 csv 文件加载它,并且没有对其进行任何数据处理,请跳过此步骤。)
将该 csv 文件放在 h2o 服务器可以看到的地方。(如果您在同一台机器上运行客户端和服务器,情况已经如此。)
使用
h2o.import_file()
(优先于h2o.upload_file()
orh2o.H2OFrame()
)
这h2o.import_file()
是将数据导入 H2O 的最快方式,但该文件必须对服务器可见。在处理远程集群时,这可能意味着将其上传到该服务器的文件系统,或将其放在 Web 服务器、HDFS 集群或 AWS S3 等上。
(原因h2o.upload_file()
较慢是它会对数据进行 HTTP POST,从客户端到服务器,并且h2o.H2OFrame()
速度较慢,因为它将您的 pandas 数据导出到临时 csv 文件,然后使用h2o.upload_file()
,然后删除临时文件。)
推荐阅读
- ruby-on-rails - 用于用户确认的电子邮件未在生产中发送。Rails、Heroku、Gmail
- python - python中CSV到CSV或JSON到JSON的有效文件比较是什么?
- c# - 将 WPF 组合框 itemssource 绑定到另一个 .cs 文件中的属性
- excel - 将子 ID 添加到已定义的 ID 号
- python - Python - 更新不同数组列的值(速度改进)
- api - 在 Openload API 中添加带有“&”字符的 url 时出现问题
- ios - iOS Xcode 如何使用包含自定义对象的自定义对象来持久化数据?
- windows - 在 NSIS 安装程序中包含文件,但不一定要安装它们?
- r - 删除 ggpairs 中的密度轴文本
- email - 将更新发送回第一个电子邮件发行者的电子邮件到 github 问题