h2o deep_copy强制Java堆空间错误



我运行以下python代码,导致Java堆空间错误。为什么垃圾收集器在从方法do_something()返回后没有释放使用过的内存?我必须在方法结束时手动释放内存吗?

import h2o 
import numpy as np
import pandas as pd

h2o.init(max_mem_size='2G')
df_input = pd.DataFrame(data=np.random.randn(10, 10))
def do_something(df):
frame = h2o.H2OFrame(df)
#predict some output based on frame 
#more h2o objects are being created here eventually ..... 
return
for i in range(10000000):
do_something(df_input)
print(h2o.ls())

垃圾回收只删除没有引用的对象,而深度复制会生成对象的完整副本并挂起引用。

如果你想释放对象,你需要删除它。

这个更新后的程序达到了您最初想要的效果。

import h2o 
h2o.init(max_mem_size='2G')
df = h2o.create_frame(frame_id='start_frame', rows=1000000, cols=10)
print(df.head())
def copy_and_remove_frame(i, df):
df_copy = h2o.deep_copy(df, 'copy_'+str(i))
h2o.remove(df_copy)
return
for i in range(50):
copy_and_remove_frame(i, df)
print(h2o.ls())

这个更新程序的"ls"的输出并没有在每次迭代中增长,因为每次迭代都是在自己之后清理的:

[['key'], ['start_frame']]
[['key'], ['start_frame']]
[['key'], ['py_188_sid_bc5e'], ['start_frame']]
[['key'], ['py_190_sid_bc5e'], ['start_frame']]
[['key'], ['py_192_sid_bc5e'], ['start_frame']]
[['key'], ['py_194_sid_bc5e'], ['start_frame']]
[['key'], ['py_194_sid_bc5e'], ['py_197_sid_bc5e'], ['start_frame']]
[['key'], ['py_194_sid_bc5e'], ['py_198_sid_bc5e'], ['start_frame']]
[['key'], ['py_194_sid_bc5e'], ['py_200_sid_bc5e'], ['start_frame']]
[['key'], ['py_194_sid_bc5e'], ['py_202_sid_bc5e'], ['start_frame']]
[['key'], ['py_194_sid_bc5e'], ['py_204_sid_bc5e'], ['start_frame']]
[['key'], ['start_frame']]
[['key'], ['py_208_sid_bc5e'], ['start_frame']]
[['key'], ['start_frame']]
[['key'], ['py_212_sid_bc5e'], ['start_frame']]
[['key'], ['py_214_sid_bc5e'], ['start_frame']]
[['key'], ['py_216_sid_bc5e'], ['start_frame']]
[['key'], ['py_218_sid_bc5e'], ['start_frame']]
[['key'], ['py_220_sid_bc5e'], ['start_frame']]
[['key'], ['py_220_sid_bc5e'], ['start_frame']]
[['key'], ['py_220_sid_bc5e'], ['start_frame']]
[['key'], ['py_220_sid_bc5e'], ['py_226_sid_bc5e'], ['start_frame']]
[['key'], ['py_228_sid_bc5e'], ['start_frame']]
[['key'], ['py_228_sid_bc5e'], ['start_frame']]
[['key'], ['py_228_sid_bc5e'], ['start_frame']]
[['key'], ['py_228_sid_bc5e'], ['start_frame']]
[['key'], ['py_228_sid_bc5e'], ['start_frame']]
[['key'], ['py_228_sid_bc5e'], ['start_frame']]
[['key'], ['py_228_sid_bc5e'], ['py_240_sid_bc5e'], ['start_frame']]
[['key'], ['py_228_sid_bc5e'], ['py_242_sid_bc5e'], ['start_frame']]
[['key'], ['py_228_sid_bc5e'], ['py_244_sid_bc5e'], ['start_frame']]
[['key'], ['py_228_sid_bc5e'], ['py_246_sid_bc5e'], ['start_frame']]
[['key'], ['py_228_sid_bc5e'], ['py_246_sid_bc5e'], ['start_frame']]
[['key'], ['py_228_sid_bc5e'], ['py_246_sid_bc5e'], ['py_250_sid_bc5e'], ['start_frame']]
[['key'], ['py_228_sid_bc5e'], ['py_246_sid_bc5e'], ['start_frame']]
[['key'], ['py_228_sid_bc5e'], ['py_246_sid_bc5e'], ['py_254_sid_bc5e'], ['start_frame']]
[['key'], ['py_228_sid_bc5e'], ['py_246_sid_bc5e'], ['py_256_sid_bc5e'], ['start_frame']]
[['key'], ['py_228_sid_bc5e'], ['py_246_sid_bc5e'], ['py_258_sid_bc5e'], ['start_frame']]
[['key'], ['py_228_sid_bc5e'], ['py_246_sid_bc5e'], ['py_260_sid_bc5e'], ['start_frame']]
[['key'], ['py_228_sid_bc5e'], ['py_246_sid_bc5e'], ['py_262_sid_bc5e'], ['start_frame']]
[['key'], ['py_228_sid_bc5e'], ['py_246_sid_bc5e'], ['py_264_sid_bc5e'], ['start_frame']]
[['key'], ['py_228_sid_bc5e'], ['py_246_sid_bc5e'], ['start_frame']]
[['key'], ['py_228_sid_bc5e'], ['py_246_sid_bc5e'], ['start_frame']]
[['key'], ['py_228_sid_bc5e'], ['py_246_sid_bc5e'], ['py_270_sid_bc5e'], ['start_frame']]
[['key'], ['py_228_sid_bc5e'], ['py_246_sid_bc5e'], ['py_272_sid_bc5e'], ['start_frame']]
[['key'], ['py_228_sid_bc5e'], ['py_246_sid_bc5e'], ['py_274_sid_bc5e'], ['start_frame']]
[['key'], ['py_228_sid_bc5e'], ['py_246_sid_bc5e'], ['py_276_sid_bc5e'], ['start_frame']]
[['key'], ['py_228_sid_bc5e'], ['py_246_sid_bc5e'], ['py_278_sid_bc5e'], ['start_frame']]
[['key'], ['py_228_sid_bc5e'], ['py_246_sid_bc5e'], ['py_280_sid_bc5e'], ['start_frame']]
[['key'], ['py_228_sid_bc5e'], ['py_246_sid_bc5e'], ['py_280_sid_bc5e'], ['start_frame']]

[现在…您可能期望python垃圾收集器在df_copy对象上无形地进行refcnt递减,因为它不是从函数返回的,一旦python refcnt达到0,就会在存储在后端Java内存中的H2OFrame上导致隐式的h2o.remove((。一旦从内存H2O-3 DKV的后端删除了高级H2OFrame对象,那么java垃圾收集器就会抓取现在释放的实际保存数据的底层字节数组对象。但正如你所看到的,python层并没有做到这一点。我认为这是因为数据科学家很难用这种非常计算机科学的方式在Jupyter笔记本上的细胞之间跳跃,记住不同数据帧的确切活性,这种方式更适合程序而不是人。如果你要求深度复制,你真的很想这样做,并想把它留在身边。所以你必须明确删除它。让这些耗资巨大的大数据框架突然消失在你身上会更糟(也就是说,这会导致数据科学家打来支持电话,想知道他们的数据发生了什么:-(




原始帖子运行的输出,显示每次迭代复制的帧数增加(用"ls"表示(。当然,这最终会失败,因为内存不是无限的:

Checking whether there is an H2O instance running at http://localhost:54321 ..... not found.
Attempting to start a local H2O server...
Java Version: java version "1.8.0_231"; Java(TM) SE Runtime Environment (build 1.8.0_231-b11); Java HotSpot(TM) 64-Bit Server VM (build 25.231-b11, mixed mode)
Starting server from /Users/tomk/anaconda/envs/h2o3/lib/python3.6/site-packages/h2o/backend/bin/h2o.jar
Ice root: /var/folders/vv/pkzvhy8x5hsfbsjg75_6q4ch0000gn/T/tmpagdl10y4
JVM stdout: /var/folders/vv/pkzvhy8x5hsfbsjg75_6q4ch0000gn/T/tmpagdl10y4/h2o_tomk_started_from_python.out
JVM stderr: /var/folders/vv/pkzvhy8x5hsfbsjg75_6q4ch0000gn/T/tmpagdl10y4/h2o_tomk_started_from_python.err
Server is running at http://127.0.0.1:54321
Connecting to H2O server at http://127.0.0.1:54321 ... successful.
H2O_cluster_uptime: 02 secs
H2O_cluster_timezone:   America/Los_Angeles
H2O_data_parsing_timezone:  UTC
H2O_cluster_version:    3.30.0.1
H2O_cluster_version_age:    15 days
H2O_cluster_name:   H2O_from_python_tomk_fv2qrn
H2O_cluster_total_nodes:    1
H2O_cluster_free_memory:    1.778 Gb
H2O_cluster_total_cores:    16
H2O_cluster_allowed_cores:  16
H2O_cluster_status: accepting new members, healthy
H2O_connection_url: http://127.0.0.1:54321
H2O_connection_proxy:   {"http": null, "https": null}
H2O_internal_security:  False
H2O_API_Extensions: Amazon S3, XGBoost, Algos, AutoML, Core V3, TargetEncoder, Core V4
Python_version: 3.6.10 final
Create Frame progress: |██████████████████████████████████████████████████| 100%
C1  C2  C3  C4  C5  C6  C7  C8  C9  C10
61.201  -76.343 -10.6917    98  c4.l71  c5.l21  -48.2047    0   nan -53.9755
-65.8869    34.639  -24.3842    61  c4.l63  c5.l73  -50.8215    0   52  -45.5802
73.5673 -65.7778    -93.1551    65  c4.l16  c5.l22  55.5902 0   97  -48.3528
12.5487 -17.0889    -38.5781    -61 c4.l39  c5.l85  -9.83111    0   77  50.9879
-54.0852    67.8506 -17.0522    81  c4.l40  c5.l9   41.9873 0   -8  -80.1168
-18.1366    -49.2238    -5.92224    24  c4.l95  c5.l11  -20.7617    0   29  92.2341
-14.861 11.7016 -51.1821    -60 c4.l32  c5.l17  -35.5073    0   -14 79.5753
-37.3768    -23.8756    15.1105 -65 c4.l20  c5.l32  29.6603 0   -11 -41.3118
-71.0224    9.29381 -74.2127    50  c4.l49  c5.l22  -90.8299    0   -50 8.42312
31.9923 0.228002    5.50001 -8  c4.l56  c5.l80  -92.0688    0   -75 -65.3436
[['key'], ['copy_0'], ['start_frame']]
[['key'], ['copy_0'], ['copy_1'], ['start_frame']]
[['key'], ['copy_0'], ['copy_1'], ['copy_2'], ['start_frame']]
[['key'], ['copy_0'], ['copy_1'], ['copy_2'], ['copy_3'], ['start_frame']]
[['key'], ['copy_0'], ['copy_1'], ['copy_2'], ['copy_3'], ['copy_4'], ['start_frame']]
[['key'], ['copy_0'], ['copy_1'], ['copy_2'], ['copy_3'], ['copy_4'], ['copy_5'], ['start_frame']]
[['key'], ['copy_0'], ['copy_1'], ['copy_2'], ['copy_3'], ['copy_4'], ['copy_5'], ['copy_6'], ['start_frame']]
[['key'], ['copy_0'], ['copy_1'], ['copy_2'], ['copy_3'], ['copy_4'], ['copy_5'], ['copy_6'], ['copy_7'], ['start_frame']]
[['key'], ['copy_0'], ['copy_1'], ['copy_2'], ['copy_3'], ['copy_4'], ['copy_5'], ['copy_6'], ['copy_7'], ['copy_8'], ['start_frame']]
[['key'], ['copy_0'], ['copy_1'], ['copy_2'], ['copy_3'], ['copy_4'], ['copy_5'], ['copy_6'], ['copy_7'], ['copy_8'], ['copy_9'], ['start_frame']]
[['key'], ['copy_0'], ['copy_1'], ['copy_10'], ['copy_2'], ['copy_3'], ['copy_4'], ['copy_5'], ['copy_6'], ['copy_7'], ['copy_8'], ['copy_9'], ['start_frame']]
[['key'], ['copy_0'], ['copy_1'], ['copy_10'], ['copy_11'], ['copy_2'], ['copy_3'], ['copy_4'], ['copy_5'], ['copy_6'], ['copy_7'], ['copy_8'], ['copy_9'], ['start_frame']]
[['key'], ['copy_0'], ['copy_1'], ['copy_10'], ['copy_11'], ['copy_12'], ['copy_2'], ['copy_3'], ['copy_4'], ['copy_5'], ['copy_6'], ['copy_7'], ['copy_8'], ['copy_9'], ['start_frame']]
[['key'], ['copy_0'], ['copy_1'], ['copy_10'], ['copy_11'], ['copy_12'], ['copy_13'], ['copy_2'], ['copy_3'], ['copy_4'], ['copy_5'], ['copy_6'], ['copy_7'], ['copy_8'], ['copy_9'], ['start_frame']]
[['key'], ['copy_0'], ['copy_1'], ['copy_10'], ['copy_11'], ['copy_12'], ['copy_13'], ['copy_14'], ['copy_2'], ['copy_3'], ['copy_4'], ['copy_5'], ['copy_6'], ['copy_7'], ['copy_8'], ['copy_9'], ['start_frame']]
[['key'], ['copy_0'], ['copy_1'], ['copy_10'], ['copy_11'], ['copy_12'], ['copy_13'], ['copy_14'], ['copy_15'], ['copy_2'], ['copy_3'], ['copy_4'], ['copy_5'], ['copy_6'], ['copy_7'], ['copy_8'], ['copy_9'], ['start_frame']]
[['key'], ['copy_0'], ['copy_1'], ['copy_10'], ['copy_11'], ['copy_12'], ['copy_13'], ['copy_14'], ['copy_15'], ['copy_16'], ['copy_2'], ['copy_3'], ['copy_4'], ['copy_5'], ['copy_6'], ['copy_7'], ['copy_8'], ['copy_9'], ['start_frame']]
[['key'], ['copy_0'], ['copy_1'], ['copy_10'], ['copy_11'], ['copy_12'], ['copy_13'], ['copy_14'], ['copy_15'], ['copy_16'], ['copy_17'], ['copy_2'], ['copy_3'], ['copy_4'], ['copy_5'], ['copy_6'], ['copy_7'], ['copy_8'], ['copy_9'], ['start_frame']]
[['key'], ['copy_0'], ['copy_1'], ['copy_10'], ['copy_11'], ['copy_12'], ['copy_13'], ['copy_14'], ['copy_15'], ['copy_16'], ['copy_17'], ['copy_18'], ['copy_2'], ['copy_3'], ['copy_4'], ['copy_5'], ['copy_6'], ['copy_7'], ['copy_8'], ['copy_9'], ['start_frame']]
[['key'], ['copy_0'], ['copy_1'], ['copy_10'], ['copy_11'], ['copy_12'], ['copy_13'], ['copy_14'], ['copy_15'], ['copy_16'], ['copy_17'], ['copy_18'], ['copy_19'], ['copy_2'], ['copy_3'], ['copy_4'], ['copy_5'], ['copy_6'], ['copy_7'], ['copy_8'], ['copy_9'], ['start_frame']]
[['key'], ['copy_0'], ['copy_1'], ['copy_10'], ['copy_11'], ['copy_12'], ['copy_13'], ['copy_14'], ['copy_15'], ['copy_16'], ['copy_17'], ['copy_18'], ['copy_19'], ['copy_2'], ['copy_20'], ['copy_3'], ['copy_4'], ['copy_5'], ['copy_6'], ['copy_7'], ['copy_8'], ['copy_9'], ['start_frame']]
[['key'], ['copy_0'], ['copy_1'], ['copy_10'], ['copy_11'], ['copy_12'], ['copy_13'], ['copy_14'], ['copy_15'], ['copy_16'], ['copy_17'], ['copy_18'], ['copy_19'], ['copy_2'], ['copy_20'], ['copy_21'], ['copy_3'], ['copy_4'], ['copy_5'], ['copy_6'], ['copy_7'], ['copy_8'], ['copy_9'], ['start_frame']]
[['key'], ['copy_0'], ['copy_1'], ['copy_10'], ['copy_11'], ['copy_12'], ['copy_13'], ['copy_14'], ['copy_15'], ['copy_16'], ['copy_17'], ['copy_18'], ['copy_19'], ['copy_2'], ['copy_20'], ['copy_21'], ['copy_22'], ['copy_3'], ['copy_4'], ['copy_5'], ['copy_6'], ['copy_7'], ['copy_8'], ['copy_9'], ['start_frame']]
[['key'], ['copy_0'], ['copy_1'], ['copy_10'], ['copy_11'], ['copy_12'], ['copy_13'], ['copy_14'], ['copy_15'], ['copy_16'], ['copy_17'], ['copy_18'], ['copy_19'], ['copy_2'], ['copy_20'], ['copy_21'], ['copy_22'], ['copy_23'], ['copy_3'], ['copy_4'], ['copy_5'], ['copy_6'], ['copy_7'], ['copy_8'], ['copy_9'], ['start_frame']]
[['key'], ['copy_0'], ['copy_1'], ['copy_10'], ['copy_11'], ['copy_12'], ['copy_13'], ['copy_14'], ['copy_15'], ['copy_16'], ['copy_17'], ['copy_18'], ['copy_19'], ['copy_2'], ['copy_20'], ['copy_21'], ['copy_22'], ['copy_23'], ['copy_24'], ['copy_3'], ['copy_4'], ['copy_5'], ['copy_6'], ['copy_7'], ['copy_8'], ['copy_9'], ['start_frame']]
[['key'], ['copy_0'], ['copy_1'], ['copy_10'], ['copy_11'], ['copy_12'], ['copy_13'], ['copy_14'], ['copy_15'], ['copy_16'], ['copy_17'], ['copy_18'], ['copy_19'], ['copy_2'], ['copy_20'], ['copy_21'], ['copy_22'], ['copy_23'], ['copy_24'], ['copy_25'], ['copy_3'], ['copy_4'], ['copy_5'], ['copy_6'], ['copy_7'], ['copy_8'], ['copy_9'], ['start_frame']]
[['key'], ['copy_0'], ['copy_1'], ['copy_10'], ['copy_11'], ['copy_12'], ['copy_13'], ['copy_14'], ['copy_15'], ['copy_16'], ['copy_17'], ['copy_18'], ['copy_19'], ['copy_2'], ['copy_20'], ['copy_21'], ['copy_22'], ['copy_23'], ['copy_24'], ['copy_25'], ['copy_26'], ['copy_3'], ['copy_4'], ['copy_5'], ['copy_6'], ['copy_7'], ['copy_8'], ['copy_9'], ['start_frame']]
[['key'], ['copy_0'], ['copy_1'], ['copy_10'], ['copy_11'], ['copy_12'], ['copy_13'], ['copy_14'], ['copy_15'], ['copy_16'], ['copy_17'], ['copy_18'], ['copy_19'], ['copy_2'], ['copy_20'], ['copy_21'], ['copy_22'], ['copy_23'], ['copy_24'], ['copy_25'], ['copy_26'], ['copy_27'], ['copy_3'], ['copy_4'], ['copy_5'], ['copy_6'], ['copy_7'], ['copy_8'], ['copy_9'], ['start_frame']]
[['key'], ['copy_0'], ['copy_1'], ['copy_10'], ['copy_11'], ['copy_12'], ['copy_13'], ['copy_14'], ['copy_15'], ['copy_16'], ['copy_17'], ['copy_18'], ['copy_19'], ['copy_2'], ['copy_20'], ['copy_21'], ['copy_22'], ['copy_23'], ['copy_24'], ['copy_25'], ['copy_26'], ['copy_27'], ['copy_28'], ['copy_3'], ['copy_4'], ['copy_5'], ['copy_6'], ['copy_7'], ['copy_8'], ['copy_9'], ['start_frame']]
[['key'], ['copy_0'], ['copy_1'], ['copy_10'], ['copy_11'], ['copy_12'], ['copy_13'], ['copy_14'], ['copy_15'], ['copy_16'], ['copy_17'], ['copy_18'], ['copy_19'], ['copy_2'], ['copy_20'], ['copy_21'], ['copy_22'], ['copy_23'], ['copy_24'], ['copy_25'], ['copy_26'], ['copy_27'], ['copy_28'], ['copy_29'], ['copy_3'], ['copy_4'], ['copy_5'], ['copy_6'], ['copy_7'], ['copy_8'], ['copy_9'], ['start_frame']]
[['key'], ['copy_0'], ['copy_1'], ['copy_10'], ['copy_11'], ['copy_12'], ['copy_13'], ['copy_14'], ['copy_15'], ['copy_16'], ['copy_17'], ['copy_18'], ['copy_19'], ['copy_2'], ['copy_20'], ['copy_21'], ['copy_22'], ['copy_23'], ['copy_24'], ['copy_25'], ['copy_26'], ['copy_27'], ['copy_28'], ['copy_29'], ['copy_3'], ['copy_30'], ['copy_4'], ['copy_5'], ['copy_6'], ['copy_7'], ['copy_8'], ['copy_9'], ['start_frame']]
[['key'], ['copy_0'], ['copy_1'], ['copy_10'], ['copy_11'], ['copy_12'], ['copy_13'], ['copy_14'], ['copy_15'], ['copy_16'], ['copy_17'], ['copy_18'], ['copy_19'], ['copy_2'], ['copy_20'], ['copy_21'], ['copy_22'], ['copy_23'], ['copy_24'], ['copy_25'], ['copy_26'], ['copy_27'], ['copy_28'], ['copy_29'], ['copy_3'], ['copy_30'], ['copy_31'], ['copy_4'], ['copy_5'], ['copy_6'], ['copy_7'], ['copy_8'], ['copy_9'], ['start_frame']]
[['key'], ['copy_0'], ['copy_1'], ['copy_10'], ['copy_11'], ['copy_12'], ['copy_13'], ['copy_14'], ['copy_15'], ['copy_16'], ['copy_17'], ['copy_18'], ['copy_19'], ['copy_2'], ['copy_20'], ['copy_21'], ['copy_22'], ['copy_23'], ['copy_24'], ['copy_25'], ['copy_26'], ['copy_27'], ['copy_28'], ['copy_29'], ['copy_3'], ['copy_30'], ['copy_31'], ['copy_32'], ['copy_4'], ['copy_5'], ['copy_6'], ['copy_7'], ['copy_8'], ['copy_9'], ['start_frame']]
[['key'], ['copy_0'], ['copy_1'], ['copy_10'], ['copy_11'], ['copy_12'], ['copy_13'], ['copy_14'], ['copy_15'], ['copy_16'], ['copy_17'], ['copy_18'], ['copy_19'], ['copy_2'], ['copy_20'], ['copy_21'], ['copy_22'], ['copy_23'], ['copy_24'], ['copy_25'], ['copy_26'], ['copy_27'], ['copy_28'], ['copy_29'], ['copy_3'], ['copy_30'], ['copy_31'], ['copy_32'], ['copy_33'], ['copy_4'], ['copy_5'], ['copy_6'], ['copy_7'], ['copy_8'], ['copy_9'], ['start_frame']]
[['key'], ['copy_0'], ['copy_1'], ['copy_10'], ['copy_11'], ['copy_12'], ['copy_13'], ['copy_14'], ['copy_15'], ['copy_16'], ['copy_17'], ['copy_18'], ['copy_19'], ['copy_2'], ['copy_20'], ['copy_21'], ['copy_22'], ['copy_23'], ['copy_24'], ['copy_25'], ['copy_26'], ['copy_27'], ['copy_28'], ['copy_29'], ['copy_3'], ['copy_30'], ['copy_31'], ['copy_32'], ['copy_33'], ['copy_34'], ['copy_4'], ['copy_5'], ['copy_6'], ['copy_7'], ['copy_8'], ['copy_9'], ['start_frame']]
[['key'], ['copy_0'], ['copy_1'], ['copy_10'], ['copy_11'], ['copy_12'], ['copy_13'], ['copy_14'], ['copy_15'], ['copy_16'], ['copy_17'], ['copy_18'], ['copy_19'], ['copy_2'], ['copy_20'], ['copy_21'], ['copy_22'], ['copy_23'], ['copy_24'], ['copy_25'], ['copy_26'], ['copy_27'], ['copy_28'], ['copy_29'], ['copy_3'], ['copy_30'], ['copy_31'], ['copy_32'], ['copy_33'], ['copy_34'], ['copy_35'], ['copy_4'], ['copy_5'], ['copy_6'], ['copy_7'], ['copy_8'], ['copy_9'], ['start_frame']]
---------------------------------------------------------------------------
H2OServerError                            Traceback (most recent call last)
<ipython-input-2-6dd1ee76f72f> in <module>
11 
12 for i in range(50):
---> 13     create_frame(i, df)
14     print(h2o.ls())
<ipython-input-2-6dd1ee76f72f> in create_frame(i, df)
7 
8 def create_frame(i, df):
----> 9     df_copy = h2o.deep_copy(df, 'copy_'+str(i))
10     return
11 
~/anaconda/envs/h2o3/lib/python3.6/site-packages/h2o/h2o.py in deep_copy(data, xid)
951     check_frame_id(xid)
952     duplicate = data.apply(lambda x: x)
--> 953     duplicate._ex = ExprNode("assign", xid, duplicate)._eval_driver(False)
954     duplicate._ex._cache._id = xid
955     duplicate._ex._children = None
~/anaconda/envs/h2o3/lib/python3.6/site-packages/h2o/expr.py in _eval_driver(self, top)
108     def _eval_driver(self, top):
109         exec_str = self._get_ast_str(top)
--> 110         res = ExprNode.rapids(exec_str)
111         if 'scalar' in res:
112             if isinstance(res['scalar'], list):
~/anaconda/envs/h2o3/lib/python3.6/site-packages/h2o/expr.py in rapids(expr)
247         :returns: The JSON response (as a python dictionary) of the Rapids execution
248         """
--> 249         return h2o.api("POST /99/Rapids", data={"ast": expr, "session_id": h2o.connection().session_id})
250 
251 
~/anaconda/envs/h2o3/lib/python3.6/site-packages/h2o/h2o.py in api(endpoint, data, json, filename, save_to)
107     # type checks are performed in H2OConnection class
108     _check_connection()
--> 109     return h2oconn.request(endpoint, data=data, json=json, filename=filename, save_to=save_to)
110 
111 
~/anaconda/envs/h2o3/lib/python3.6/site-packages/h2o/backend/connection.py in request(self, endpoint, data, json, filename, save_to)
476                 save_to = save_to(resp)
477             self._log_end_transaction(start_time, resp)
--> 478             return self._process_response(resp, save_to)
479 
480         except (requests.exceptions.ConnectionError, requests.exceptions.HTTPError) as e:
~/anaconda/envs/h2o3/lib/python3.6/site-packages/h2o/backend/connection.py in _process_response(response, save_to)
827         # Note that it is possible to receive valid H2OErrorV3 object in this case, however it merely means the server
828         # did not provide the correct status code.
--> 829         raise H2OServerError("HTTP %d %s:n%r" % (status_code, response.reason, data))
830 
831 
H2OServerError: HTTP 500 java.lang.OutOfMemoryError: GC overhead limit exceeded:
'<html>n<head>n<meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/>n<title>Error 500 java.lang.OutOfMemoryError: GC overhead limit exceededn</title>n</head>n<body>n<h2>HTTP ERROR: 500</h2>n<p>Problem accessing /99/Rapids. Reason:n<pre>    java.lang.OutOfMemoryError: GC overhead limit exceededn</pre></p>nn                                                n                                                n                                                n                                                n                                                n                                                n                                                n                                                n                                                n                                                n                                                n                                                n                                                n                                                n                                                n                                                n                                                n                                                n                                                n                                                n</body>n</html>n'

最新更新