Table sampling is broken

18 views
Skip to first unread message

Damien Carol

unread,
May 16, 2014, 10:04:11 AM5/16/14
to presto...@googlegroups.com
Since 0.68 (I've not tested later release).

query on existing sample tables is ok.

But try this one produce error one nodes :

CREATE TABLE trace_sample_10
as
SELECT
*
FROM trace_iforchqc_rc
TABLESAMPLE POISSONIZED
(10) RESCALED;

Root exception :

java.lang.IllegalArgumentException: Key '$sampleweight' not present in map

Complete stack :

2014-05-16T15:36:13.433+0200     WARN   http-worker-650 org.eclipse.jetty.servlet.ServletHandler        /v1/task/20140516_133613_00037_a7n69.1.4
java
.lang.IllegalArgumentException: Key '$sampleweight' not present in map
        at com
.google.common.base.Preconditions.checkArgument(Preconditions.java:148) ~[guava-16.0.1.jar:na]
        at com
.google.common.base.Functions$FunctionForMapNoDefault.apply(Functions.java:116) ~[guava-16.0.1.jar:na]
        at com
.google.common.collect.Iterators$8.transform(Iterators.java:794) ~[guava-16.0.1.jar:na]
        at com
.google.common.collect.TransformedIterator.next(TransformedIterator.java:48) ~[guava-16.0.1.jar:na]
        at com
.google.common.collect.ImmutableCollection$Builder.addAll(ImmutableCollection.java:301) ~[guava-16.0.1.jar:na]
        at com
.google.common.collect.ImmutableList$Builder.addAll(ImmutableList.java:691) ~[guava-16.0.1.jar:na]
        at com
.google.common.collect.ImmutableList.copyOf(ImmutableList.java:275) ~[guava-16.0.1.jar:na]
        at com
.google.common.collect.ImmutableList.copyOf(ImmutableList.java:226) ~[guava-16.0.1.jar:na]
        at com
.facebook.presto.util.IterableTransformer.list(IterableTransformer.java:116) ~[presto-main-0.68.jar:0.68]
        at com
.facebook.presto.sql.planner.LocalExecutionPlanner$Visitor.getSymbolTypes(LocalExecutionPlanner.java:1230) ~[presto-main-0.68.jar:0.68]
        at com
.facebook.presto.sql.planner.LocalExecutionPlanner$Visitor.getSourceOperatorTypes(LocalExecutionPlanner.java:1225) ~[presto-main-0.68.jar:0.68]
        at com
.facebook.presto.sql.planner.LocalExecutionPlanner$Visitor.createInMemoryExchange(LocalExecutionPlanner.java:1134) ~[presto-main-0.68.jar:0.68]
        at com
.facebook.presto.sql.planner.LocalExecutionPlanner$Visitor.visitTableWriter(LocalExecutionPlanner.java:1104) ~[presto-main-0.68.jar:0.68]
        at com
.facebook.presto.sql.planner.LocalExecutionPlanner$Visitor.visitTableWriter(LocalExecutionPlanner.java:311) ~[presto-main-0.68.jar:0.68]
        at com
.facebook.presto.sql.planner.plan.TableWriterNode.accept(TableWriterNode.java:149) ~[presto-main-0.68.jar:0.68]
        at com
.facebook.presto.sql.planner.LocalExecutionPlanner$Visitor.visitSink(LocalExecutionPlanner.java:1080) ~[presto-main-0.68.jar:0.68]
        at com
.facebook.presto.sql.planner.LocalExecutionPlanner$Visitor.visitSink(LocalExecutionPlanner.java:311) ~[presto-main-0.68.jar:0.68]
        at com
.facebook.presto.sql.planner.plan.SinkNode.accept(SinkNode.java:67) ~[presto-main-0.68.jar:0.68]
        at com
.facebook.presto.sql.planner.LocalExecutionPlanner.plan(LocalExecutionPlanner.java:193) ~[presto-main-0.68.jar:0.68]
        at com
.facebook.presto.execution.SqlTaskExecution.<init>(SqlTaskExecution.java:214) ~[presto-main-0.68.jar:0.68]
        at com
.facebook.presto.execution.SqlTaskExecution.createSqlTaskExecution(SqlTaskExecution.java:126) ~[presto-main-0.68.jar:0.68]
        at com
.facebook.presto.execution.SqlTaskManager.updateTask(SqlTaskManager.java:296) ~[presto-main-0.68.jar:0.68]
        at com
.facebook.presto.server.TaskResource.createOrUpdateTask(TaskResource.java:89) ~[presto-server-0.68.jar:0.68]
        at sun
.reflect.GeneratedMethodAccessor221.invoke(Unknown Source) ~[na:na]
        at sun
.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.7.0_45]
        at java
.lang.reflect.Method.invoke(Method.java:606) ~[na:1.7.0_45]
        at com
.sun.jersey.spi.container.JavaMethodInvokerFactory$1.invoke(JavaMethodInvokerFactory.java:60) ~[jersey-server-1.17.1.jar:1.17.1]
        at com
.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$ResponseOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:205) ~[jersey-server-1.17.1.jar:1.17.1]
        at com
.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:75) ~[jersey-server-1.17.1.jar:1.17.1]
        at com
.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:302) ~[jersey-server-1.17.1.jar:1.17.1]
        at com
.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147) ~[jersey-server-1.17.1.jar:1.17.1]
        at com
.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:108) ~[jersey-server-1.17.1.jar:1.17.1]
        at com
.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147) ~[jersey-server-1.17.1.jar:1.17.1]
        at com
.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:84) ~[jersey-server-1.17.1.jar:1.17.1]
        at com
.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1511) ~[jersey-server-1.17.1.jar:1.17.1]
        at com
.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1442) ~[jersey-server-1.17.1.jar:1.17.1]
        at com
.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1391) ~[jersey-server-1.17.1.jar:1.17.1]
        at com
.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1381) ~[jersey-server-1.17.1.jar:1.17.1]
        at com
.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:416) ~[jersey-servlet-1.17.1.jar:1.17.1]
        at com
.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:538) ~[jersey-servlet-1.17.1.jar:1.17.1]
        at com
.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:716) ~[jersey-servlet-1.17.1.jar:1.17.1]
        at javax
.servlet.http.HttpServlet.service(HttpServlet.java:790) ~[javax.servlet-api-3.1.0.jar:3.1.0]
        at org
.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:738) ~[jetty-servlet-9.1.4.v20140401.jar:9.1.4.v20140401]
        at org
.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1651) ~[jetty-servlet-9.1.4.v20140401.jar:9.1.4.v20140401]
        at org
.eclipse.jetty.servlets.UserAgentFilter.doFilter(UserAgentFilter.java:83) ~[jetty-servlets-9.1.4.v20140401.jar:9.1.4.v20140401]
        at org
.eclipse.jetty.servlets.GzipFilter.doFilter(GzipFilter.java:298) ~[jetty-servlets-9.1.4.v20140401.jar:9.1.4.v20140401]
        at org
.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1622) ~[jetty-servlet-9.1.4.v20140401.jar:9.1.4.v20140401]
        at io
.airlift.http.server.TraceTokenFilter.doFilter(TraceTokenFilter.java:62) ~[http-server-0.88.jar:0.88]
        at org
.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1622) ~[jetty-servlet-9.1.4.v20140401.jar:9.1.4.v20140401]
        at io
.airlift.http.server.TimingFilter.doFilter(TimingFilter.java:51) ~[http-server-0.88.jar:0.88]
        at org
.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1622) ~[jetty-servlet-9.1.4.v20140401.jar:9.1.4.v20140401]
        at org
.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:549) [jetty-servlet-9.1.4.v20140401.jar:9.1.4.v20140401]
        at org
.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1111) [jetty-server-9.1.4.v20140401.jar:9.1.4.v20140401]
        at org
.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:478) [jetty-servlet-9.1.4.v20140401.jar:9.1.4.v20140401]
        at org
.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1045) [jetty-server-9.1.4.v20140401.jar:9.1.4.v20140401]
        at org
.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) [jetty-server-9.1.4.v20140401.jar:9.1.4.v20140401]
        at org
.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109) [jetty-server-9.1.4.v20140401.jar:9.1.4.v20140401]
        at org
.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97) [jetty-server-9.1.4.v20140401.jar:9.1.4.v20140401]
        at org
.eclipse.jetty.server.handler.StatisticsHandler.handle(StatisticsHandler.java:159) [jetty-server-9.1.4.v20140401.jar:9.1.4.v20140401]
        at org
.eclipse.jetty.server.handler.HandlerList.handle(HandlerList.java:52) [jetty-server-9.1.4.v20140401.jar:9.1.4.v20140401]
        at org
.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97) [jetty-server-9.1.4.v20140401.jar:9.1.4.v20140401]
        at org
.eclipse.jetty.server.Server.handle(Server.java:462) [jetty-server-9.1.4.v20140401.jar:9.1.4.v20140401]
        at org
.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:279) [jetty-server-9.1.4.v20140401.jar:9.1.4.v20140401]
        at org
.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:232) [jetty-server-9.1.4.v20140401.jar:9.1.4.v20140401]
        at org
.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:534) [jetty-io-9.1.4.v20140401.jar:9.1.4.v20140401]
        at org
.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:607) [jetty-util-9.1.4.v20140401.jar:9.1.4.v20140401]
        at org
.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:536) [jetty-util-9.1.4.v20140401.jar:9.1.4.v20140401]
        at java
.lang.Thread.run(Thread.java:744) [na:1.7.0_45]



Martin Traverso

unread,
May 16, 2014, 11:54:09 AM5/16/14
to presto...@googlegroups.com
Thanks for the report! Definitely a bug. I filed an issue on github for this: https://github.com/facebook/presto/issues/1307

We'll look into it soon.

Martin





--
You received this message because you are subscribed to the Google Groups "Presto" group.
To unsubscribe from this group and stop receiving emails from it, send an email to presto-users...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Damien Carol

unread,
May 16, 2014, 12:14:08 PM5/16/14
to presto...@googlegroups.com
Thanks a lot Martin.

I need this feature because we will do a performance test at the end of the month.

I will try to fix it myself.
...
Reply all
Reply to author
Forward
0 new messages