I installed H2o (3.4), Java SE SDK (17), and use R (4.1.3). I am working on deep autoencoder. I was able to split my data using SplitFrame and generated autoencoder model and everything was working well. A week later, when I was working with the same data to regenerate my model because I didn't save my workspace, I had to split again, and then the following error came up. I have been battling with it for 3 days now. See the error below:
ERROR: Unexpected HTTP Status code: 404 Not Found (url = http://localhost:54321/3/Frames/RTMP_sid_afb5_1?row_count=10)
water.exceptions.H2OKeyNotFoundArgumentException
[1] "water.exceptions.H2OKeyNotFoundArgumentException: Object 'RTMP_sid_afb5_1' not found for argument: key"
[2] " water.api.FramesHandler.getFromDKV(FramesHandler.java:136)"
[3] " water.api.FramesHandler.doFetch(FramesHandler.java:226)"
[4] " water.api.FramesHandler.doFetch(FramesHandler.java:221)"
[5] " water.api.FramesHandler.fetch(FramesHandler.java:200)"
[6] " java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)"
[7] " java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)"
[8] " java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)"
[9] " java.base/java.lang.reflect.Method.invoke(Method.java:568)"
[10] " water.api.Handler.handle(Handler.java:60)"
[11] " water.api.RequestServer.serve(RequestServer.java:472)"
[12] " water.api.RequestServer.doGeneric(RequestServer.java:303)"
[13] " water.api.RequestServer.doGet(RequestServer.java:225)"
[14] " javax.servlet.http.HttpServlet.service(HttpServlet.java:687)"
[15] " javax.servlet.http.HttpServlet.service(HttpServlet.java:790)"
[16] " org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:865)"
[17] " org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:535)"
[18] " org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)"
[19] " org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1317)"
[20] " org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)"
[21] " org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)"
[22] " org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)"
[23] " org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1219)"
[24] " org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)"
[25] " org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:126)"
[26] " org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)"
[27] " water.webserver.jetty9.Jetty9ServerAdapter$LoginHandler.handle(Jetty9ServerAdapter.java:130)"
[28] " org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:126)"
[29] " org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)"
[30] " org.eclipse.jetty.server.Server.handle(Server.java:531)"
[31] " org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:352)"
[32] " org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260)"
[33] " org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:281)"
[34] " org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:102)"
[35] " org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118)"
[36] " org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333)"
[37] " org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310)"
[38] " org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168)"
[39] " org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126)"
[40] " org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366)"
[41] " org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:762)"
[42] " org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:680)"
[43] " java.base/java.lang.Thread.run(Thread.java:833)"
Error in .h2o.doSafeREST(h2oRestApiVersion = h2oRestApiVersion, urlSuffix = page, :
ERROR MESSAGE:
Object 'RTMP_sid_afb5_1' not found for argument: key```
I have finally resolved the issue. I had to convert the dataset again to an h2o object before calling the splitFrame function.
trans_hf <- as.h2o(atm_trans)
splits <- h2o.splitFrame(trans_hf, ratios = c(0.4, 0.4), seed = 42)
I don't know why I had to do that because the trans_hf was not empty nor null but it is ok now.