Hi,
I'm facing a strange assertion (using the current PIG trunk) when
trying to perform a simple filter using comparison operator:
pigServer.registerQuery("sessions = FILTER sessions BY end - start <
3600000L;");
This only occurs when running my code in local mode, not in map
reduce mode.
I've tried to reproduce it using simple scripts run in local mode
that also uses the same kind of comparison, but the assertion does
not occur.
Do you have any idea to fix this?
Thanks a lot,
The stack trace is the following:
2009-10-30 10:22:05,813 | FATAL | main | Main | Uncaught
handler: thread main (1) exiting due to uncaught exception
java.lang.AssertionError
at
org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.LessThanExpr.doComparison(LessThanExpr.java:126)
at
org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.LessThanExpr.getNext(LessThanExpr.java:94)
at
org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POFilter.getNext(POFilter.java:148)
at
org.apache.pig.backend.hadoop.executionengine.physicalLayer.PhysicalOperator.processInput(PhysicalOperator.java:231)
at
org.apache.pig.backend.local.executionengine.physicalLayer.counters.POCounter.getNext(POCounter.java:71)
at
org.apache.pig.backend.hadoop.executionengine.physicalLayer.PhysicalOperator.processInput(PhysicalOperator.java:231)
at
org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POStore.getNext(POStore.java:117)
at
org.apache.pig.backend.local.executionengine.LocalPigLauncher.runPipeline(LocalPigLauncher.java:147)
at
org.apache.pig.backend.local.executionengine.LocalPigLauncher.launchPig(LocalPigLauncher.java:109)
at
org.apache.pig.backend.local.executionengine.LocalExecutionEngine.execute(LocalExecutionEngine.java:165)
at
org.apache.pig.PigServer.executeCompiledLogicalPlan(PigServer.java:779)
at org.apache.pig.PigServer.store(PigServer.java:528)
at org.apache.pig.PigServer.store(PigServer.java:493)
at com.ubikod.ermin.analytics.stats.Stats.prepare(Stats.java:64)
at com.ubikod.ermin.analytics.stats.Stats.compute(Stats.java:110)
at com.ubikod.ermin.analytics.Analytics.main(Analytics.java:189)
The full PIG code run from JAVA is the following:
pigServer.registerQuery("start_sessions = LOAD 'startSession' USING
org.apache.pig.backend.hadoop.hbase.HBaseStorage('meta:sid
meta:infoid meta:imei meta:timestamp') "
+ "AS (sid:chararray, infoid:chararray, imei:chararray,
start:long);");
pigServer.registerQuery("end_sessions = LOAD 'endSession' USING
org.apache.pig.backend.hadoop.hbase.HBaseStorage('meta:sid
meta:infoid meta:imei meta:timestamp meta:locid') "
+ "AS (sid:chararray, infoid:chararray, imei:chararray,
end:long, locid:chararray);");
pigServer.registerQuery("global_sessions = JOIN start_sessions BY
sid, end_sessions BY sid;");
pigServer.registerQuery("sessions = FILTER sessions BY end - start <
3600000L;");