我运行以下python代码,导致Java堆空间错误消息。为什么垃圾回收器不释放使用的内存?我希望垃圾收集器能够处理这种情况。
import h2o
h2o.init(max_mem_size='2G')
df = h2o.create_frame(frame_id='start_frame', rows=1000000, cols=10)
print(df.head())
def create_frame(i, df):
df_copy = h2o.deep_copy(df, 'copy_'+str(i))
return
for i in range(50):
create_frame(i, df)
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减量,因为它没有从函数中返回,从而导致隐式h2o.remove()一旦python refcnt达到0,就在后端Java存储器中存储的H2OFrame上进行操作。一旦从后端内存H2O-3 DKV中删除了高级H2OFrame对象,那么Java垃圾收集器就会sc起现在释放的底层字节数组对象,它们实际保存数据。但是正如您所看到的,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 exceeded\n</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 exceeded\n</pre></p>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n</body>\n</html>\n'