使用Spyder在AWS服务器上使用python代码加载数据集时,出现以下错误:
File "<ipython-input-19-7b2e7b5812b3>", line 1, in <module>
ffemq12 = load_h2odataframe_returns(femq12) #; ffemq12 = add_fold_column(ffemq12)
File "D:\Ashwin\do\init_sm.py", line 106, in load_h2odataframe_returns
fr=h2o.H2OFrame(python_obj=returns)
File "C:\Program Files\Anaconda2\lib\site-packages\h2o\frame.py", line 106, in __init__
column_names, column_types, na_strings, skipped_columns)
File "C:\Program Files\Anaconda2\lib\site-packages\h2o\frame.py", line 147, in _upload_python_object
self._upload_parse(tmp_path, destination_frame, 1, separator, column_names, column_types, na_strings, skipped_columns)
File "C:\Program Files\Anaconda2\lib\site-packages\h2o\frame.py", line 321, in _upload_parse
ret = h2o.api("POST /3/PostFile", filename=path)
File "C:\Program Files\Anaconda2\lib\site-packages\h2o\h2o.py", line 104, in api
return h2oconn.request(endpoint, data=data, json=json, filename=filename, save_to=save_to)
File "C:\Program Files\Anaconda2\lib\site-packages\h2o\backend\connection.py", line 415, in request
raise H2OConnectionError("Unexpected HTTP error: %s" % e)
我正在AWS服务器上的Spyder上运行此python代码。该代码可以正常工作到数据集的一半(1.5gb / 3gb),但是如果我增加数据大小,则会引发错误。我尝试将RAM从61gb增加到122 GB,但这仍然给我同样的错误。
加载数据文件
femq12 = pd.read_csv(r"H:\Ashwin\dta\datafile.csv")
ffemq12 = load_h2odataframe_returns(femq12)
初始化水
h2o.init(nthreads = -1,max_mem_size="150G")
正在加载水
通过http://127.0.0.1:54321连接到H2O服务器...成功。 -------------------------- ------------------------ ------------ H2O集群正常运行时间:01秒H2O集群时区:UTC H2O 数据解析时区:UTC H2O群集版本:3.22.1.3 H2O 集群版本年龄:18天H2O集群总节点数:1 H2O 集群可用内存:133.3 Gb H2O集群总核心数:16 H2O 群集允许的核心:16 H2O群集状态:接受新 成员,健康的H2O连接代理:H2O内部安全性:
错误的H2O API扩展:Algos,AutoML,Core V3,Core V4 Python版本:2.7.15最终版
我怀疑这是内存问题。但是即使增加RAM和max_mem_size之后,数据集也不会加载。
任何解决错误的想法将不胜感激。谢谢。
答案 0 :(得分:1)
解决方案:不要使用pd.read_csv()
和h2o.H2OFrame()
,而是直接使用h2o.import_file()
。
错误消息在POST /3/PostFile
REST命令上。据我从您的代码和日志片段中得知,这意味着它正在上载到localhost?那真是低效。
((如果不是本地主机,即datafile.csv在计算机上,位于AWS之外,则先将其上传到S3。如果在计算机上进行一些数据处理,则将其保存为新文件,然后将其上传到S3。不必是S3:如果H2O群集中只有一台计算机,则可以是硬盘。)
有关某些背景信息,另请参阅我最近在https://stackoverflow.com/a/54568511/841830和https://stackoverflow.com/a/54459577/841830上获得的答案。 (我没有将其标记为重复,好像建议是相同的,每种情况下,原因都有所不同;在这里,我想知道您是否达到了最大HTTP POST文件大小的限制,也许是2GB?我想从所有多个临时副本中复制出来,它也可能用完了磁盘空间。)