我运行以下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'