Skip to content

can't convert iris species column to a character column.  #14754

@exalate-issue-sync

Description

@exalate-issue-sync

can't convert iris species column to a character column.

iris[4].isfactor()
True
iris[4].ischaracter()
False
iris[4].isstring()
False
iris[4] = iris[4].ascharacter()
gives:
/99/Rapids, route: /99/Rapids, parms: {ast=(= !pyabae30a9-a72b-4d7c-945b-b11da25302e3 (as.character ([ %iris.hex () #4)))}
onExCompletion for water.fvec.Frame$4@68a1efd6
08-05 11:29:56.774 172.16.2.18:54321 48948 #87911-14 ERRR: java.lang.RuntimeException: water.DException$DistributedException: from /172.16.2.18:54321; by class water.fvec.Frame$4; class java.lang.IllegalArgumentException: Operation not allowed on string vector.java.lang.IllegalArgumentException: Operation not allowed on string vector.

at water.fvec.StrWrappedVec$StrWrappedChunk.atd_impl(StrWrappedVec.java:41)
at water.fvec.Chunk.atd(Chunk.java:252)
at water.fvec.Frame$4.map(Frame.java:1124)
at water.MRTask.compute2(MRTask.java:656)
at water.H2O$H2OCountedCompleter.compute(H2O.java:964)
at jsr166y.CountedCompleter.exec(CountedCompleter.java:429)
at jsr166y.ForkJoinTask.doExec(ForkJoinTask.java:263)
at jsr166y.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:974)
at jsr166y.ForkJoinPool.runWorker(ForkJoinPool.java:1477)
at jsr166y.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:104)

java.lang.RuntimeException: water.DException$DistributedException: from /172.16.2.18:54321; by class water.fvec.Frame$4; class java.lang.IllegalArgumentException: Operation not allowed on string vector.
at water.MRTask.getResult(MRTask.java:489)
at water.MRTask.doAll(MRTask.java:386)
at water.MRTask.doAll(MRTask.java:383)
at water.fvec.Frame.deepCopy(Frame.java:1116)
at water.rapids.ASTAssign.exec(AST.java:924)
at water.rapids.AST.treeWalk(AST.java:87)
at water.rapids.Exec.exec(Exec.java:68)
at water.api.RapidsHandler.exec(RapidsHandler.java:37)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at water.api.Handler.handle(Handler.java:56)
at water.api.RequestServer.handle(RequestServer.java:658)
at water.api.RequestServer.serve(RequestServer.java:595)
at water.JettyHTTPD$H2oDefaultServlet.doGeneric(JettyHTTPD.java:550)
at water.JettyHTTPD$H2oDefaultServlet.doPost(JettyHTTPD.java:498)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:755)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:684)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:503)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:557)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:429)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:154)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
at org.eclipse.jetty.server.Server.handle(Server.java:370)
at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:494)
at org.eclipse.jetty.server.BlockingHttpConnection.handleRequest(BlockingHttpConnection.java:53)
at org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:982)
at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:1043)
at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:865)
at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:240)
at org.eclipse.jetty.server.BlockingHttpConnection.handle(BlockingHttpConnection.java:72)
at org.eclipse.jetty.server.bio.SocketConnector$ConnectorEndPoint.run(SocketConnector.java:264)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
at java.lang.Thread.run(Thread.java:745)
Caused by: water.DException$DistributedException: from /172.16.2.18:54321; by class water.fvec.Frame$4; class java.lang.IllegalArgumentException: Operation not allowed on string vector.
at water.fvec.StrWrappedVec$StrWrappedChunk.atd_impl(StrWrappedVec.java:41)
at water.fvec.Chunk.atd(Chunk.java:252)
at water.fvec.Frame$4.map(Frame.java:1124)
at water.MRTask.compute2(MRTask.java:656)
at water.H2O$H2OCountedCompleter.compute(H2O.java:964)
at jsr166y.CountedCompleter.exec(CountedCompleter.java:429)
at jsr166y.ForkJoinTask.doExec(ForkJoinTask.java:263)
at jsr166y.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:974)
at jsr166y.ForkJoinPool.runWorker(ForkJoinPool.java:1477)
at jsr166y.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:104)
08-05 11:29:56.776 172.16.2.18:54321 48948 #87911-14 WARN: Caught exception: water.DException$DistributedException: from /172.16.2.18:54321; by class water.fvec.Frame$4; class java.lang.IllegalArgumentException: Operation not allowed on string vector.; Stacktrace: [water.MRTask.getResult(MRTask.java:489), water.MRTask.doAll(MRTask.java:386), water.MRTask.doAll(MRTask.java:383), water.fvec.Frame.deepCopy(Frame.java:1116), water.rapids.ASTAssign.exec(AST.java:924), water.rapids.AST.treeWalk(AST.java:87), water.rapids.Exec.exec(Exec.java:68), water.api.RapidsHandler.exec(RapidsHandler.java:37), sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method), sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57), sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43), java.lang.reflect.Method.invoke(Method.java:606), water.api.Handler.handle(Handler.java:56), water.api.RequestServer.handle(RequestServer.java:658), water.api.RequestServer.serve(RequestServer.java:595), water.JettyHTTPD$H2oDefaultServlet.doGeneric(JettyHTTPD.java:550), water.JettyHTTPD$H2oDefaultServlet.doPost(JettyHTTPD.java:498), javax.servlet.http.HttpServlet.service(HttpServlet.java:755), javax.servlet.http.HttpServlet.service(HttpServlet.java:848), org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:684), org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:503), org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137), org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:557), org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231), org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086), org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:429), org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193), org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020), org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135), org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:154), org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116), org.eclipse.jetty.server.Server.handle(Server.java:370), org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:494), org.eclipse.jetty.server.BlockingHttpConnection.handleRequest(BlockingHttpConnection.java:53), org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:982), org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:1043), org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:865), org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:240), org.eclipse.jetty.server.BlockingHttpConnection.handle(BlockingHttpConnection.java:72), org.eclipse.jetty.server.bio.SocketConnector$ConnectorEndPoint.run(SocketConnector.java:264), org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608), org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543), java.lang.Thread.run(Thread.java:745)]

same sequence of commands fails in R as well.


iris = h2o.import_frame(h2o.locate("smalldata/iris/iris.csv"))
assert iris[0].isnumeric(), "Expected the first column of iris to be numeric"
assert not iris[0].ischaracter(), "Expected the first column of iris to be numeric"
assert not iris[4].isnumeric(), "Expected the last column of iris to be character"

assert iris[4].isstring(), "Expected the last column of iris to be a string" # This fails, and I couldn't find a dataset where it ever evaluates to True

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions