I’m using RStudio server and h2o.splitFrame
is causing some error, and I’m not sure where to look at.
h2o.init(max_mem_size = '950G', nthreads = 127)
...
parts = h2o.splitFrame(data_h2o, ratios = c(0.7,0.15), seed =1) # train-valid-test split
Error in .Call(R_curl_fetch_memory, enc2utf8(url), handle, nonblocking) :
reached elapsed time limit
The behavior is quite strange in that sometimes parts
is generated fine regardless of the error. However, occasionally it fails and prints errors like:
> parts
[[1]]
# train split was OK
5 -1.110098e-16 -0.30177617
6 9.999955e-01 12.29344288
[487719970 rows x 16 columns]
[[2]]
ERROR: Unexpected HTTP Status code: 400 Bad Request (url = http://localhost:54321/99/Rapids)
java.lang.IllegalArgumentException
[1] "java.lang.IllegalArgumentException: Name lookup of 'RTMP_sid_bbef_2' failed"
[2] " water.rapids.Env.lookup(Env.java:458)"
[3] " water.rapids.ast.params.AstId.exec(AstId.java:33)"
[4] " water.rapids.ast.prims.mungers.AstRowSlice.apply(AstRowSlice.java:39)"
[5] " water.rapids.ast.prims.mungers.AstRowSlice.apply(AstRowSlice.java:20)"
[6] " water.rapids.ast.AstExec.exec(AstExec.java:63)"
[7] " water.rapids.ast.prims.assign.AstTmpAssign.apply(AstTmpAssign.java:48)"
[8] " water.rapids.ast.prims.assign.AstTmpAssign.apply(AstTmpAssign.java:17)"
[9] " water.rapids.ast.AstExec.exec(AstExec.java:63)"
[10] " water.rapids.Session.exec(Session.java:99)"
[11] " water.rapids.Rapids.exec(Rapids.java:94)"
[12] " water.api.RapidsHandler.exec(RapidsHandler.java:34)"
[13] " java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)"
[14] " java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)"
[15] " java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)"
[16] " java.base/java.lang.reflect.Method.invoke(Method.java:566)"
[17] " water.api.Handler.handle(Handler.java:60)"
[18] " water.api.RequestServer.serve(RequestServer.java:472)"
[19] " water.api.RequestServer.doGeneric(RequestServer.java:303)"
[20] " water.api.RequestServer.doPost(RequestServer.java:227)"
[21] " javax.servlet.http.HttpServlet.service(HttpServlet.java:707)"
[22] " javax.servlet.http.HttpServlet.service(HttpServlet.java:790)"
[23] " org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:865)"
[24] " org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:535)"
[25] " org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)"
[26] " org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1317)"
[27] " org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)"
[28] " org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)"
[29] " org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)"
[30] " org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1219)"
[31] " org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)"
[32] " org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:126)"
[33] " org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)"
[34] " water.webserver.jetty9.Jetty9ServerAdapter$LoginHandler.handle(Jetty9ServerAdapter.java:130)"
[35] " org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:126)"
[36] " org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)"
[37] " org.eclipse.jetty.server.Server.handle(Server.java:531)"
[38] " org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:352)"
[39] " org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260)"
[40] " org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:281)"
[41] " org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:102)"
[42] " org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118)"
[43] " org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333)"
[44] " org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310)"
[45] " org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168)"
[46] " org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126)"
[47] " org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366)"
[48] " org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:762)"
[49] " org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:680)"
[50] " java.base/java.lang.Thread.run(Thread.java:829)"
Error in .h2o.doSafeREST(h2oRestApiVersion = h2oRestApiVersion, urlSuffix = page, :
ERROR MESSAGE:
Name lookup of 'RTMP_sid_bbef_2' failed
sessionInfo()
R version 4.2.2 Patched (2022-11-10 r83330)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 22.04.2 LTS
Matrix products: default
BLAS: /usr/lib/x86_64-linux-gnu/openblas-pthread/libblas.so.3
LAPACK: /usr/lib/x86_64-linux-gnu/openblas-pthread/libopenblasp-r0.3.20.so
locale:
[1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8 LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8
[7] LC_PAPER=en_US.UTF-8 LC_NAME=C LC_ADDRESS=C LC_TELEPHONE=C LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] hrbrthemes_0.8.0 kableExtra_1.3.4 fixest_0.11.1 RPostgres_1.4.5 dbplyr_2.3.0 tictoc_1.1 ggthemr_1.1.0 hms_1.1.2 arrow_10.0.1
[10] data.table_1.14.6 forcats_1.0.0 stringr_1.5.0 dplyr_1.1.0 purrr_1.0.1 readr_2.1.3 tidyr_1.3.0 tibble_3.1.8 ggplot2_3.4.0
[19] tidyverse_1.3.2 h2o_3.40.0.1
2
Answers
h2o
version3.40.0.2
still doesn't solve the problem.Luckily, I found this workaround; it works with no problem somehow.
Edit: Another workaround
Supplying destination frame names does not generate above error.
Edit:: @Erin
It looks like it failed to find the frame data_h2o and hence failed the frame splitting. The error message provided to you is bad.