Hi all,

Thanks Jonathan and Daniel for prompt responses..

Based on ur suggestions, I tried as following...

* Code:*

       REGISTER
/home/training/Desktop/1pig/pig-0.7.0/contrib/piggybank/piggybank.jar
*
      // all 3 combinations of A, are followed by four combinations of B:*
*    A = LOAD 'FF23_Filtered1.txt' AS (appID: float, rankW2: float, rankW3:
float);
    A = LOAD 'FF23_Filtered1.txt' AS (appID: int, rankW2: int, rankW3: int);
    A = LOAD 'FF23_Filtered1.txt' AS (appID, rankW2, rankW3);
*
    *B = FOREACH A GENERATE appID,
org.apache.pig.piggybank.evaluation.math.MAX((double)rankW2,
(double)rankW3); **
    store B into 'FF23_FJM.txt';               **//received null pointer
exception.**
**
    B = FOREACH A GENERATE appID,
org.apache.pig.piggybank.evaluation.math.MAX(((double)rankW2 is null ?
(double)rankW3 : (double)rankW2), ((double)rankW3 is null ? (double)rankW2 :
(double)rankW3));
    store B into 'FF23_FJM.txt';               **//received nullpointer
exception.*
*
    B = FOREACH A GENERATE appID,
org.apache.pig.piggybank.evaluation.math.MAX(((double)rankW2 is null ?
(double)rankW3 : (double)rankW2) AS (double)rankW2, ((double)rankW3 is null
? (double)rankW2 : (double)rankW3) AS (double)rankW3));       **// received
invalid alias error**


    B = FOREACH A GENERATE appID,
org.apache.pig.piggybank.evaluation.math.MAX((rankW2 is null ? rankW3 :
rankW2) AS (double)rankW2, (rankW3 is null ? rankW2 : rankW3) AS
(double)rankW3));         **
                                           **//invalid alias**

-> As mentioned above, in all 12 combinations of the trails, I got the
corresponding exceptions, as mentioned with B's... Please advise, if I
missed some thing...

**the details of both exceptions are:**
1) org.apache.pig.backend.executionengine.ExecException: ERROR 2078: Caught
error from UDF: org.apache.pig.piggybank.evaluation.math.DoubleMax [Caught
exception processing input row  [null]]
    at
org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POUserFunc.getNext(POUserFunc.java:229)
    at
org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POUserFunc.getNext(POUserFunc.java:263)
    at
org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POForEach.processPlan(POForEach.java:269)
    at
org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POForEach.getNext(POForEach.java:204)
    at
org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigMapBase.runPipeline(PigMapBase.java:249)
    at
org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigMapBase.map(PigMapBase.java:240)
    at
org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigMapOnly$Map.map(PigMapOnly.java:65)
    at org.apache.hadoop.mapred.MapRunner.run(MapRunner.java:50)
    at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:358)
    at org.apache.hadoop.mapred.MapTask.run(MapTask.java:307)
    at org.apache.hadoop.mapred.Child.main(Child.java:170)
Caused by: java.io.IOException: Caught exception processing input row
[null]
    at
org.apache.pig.piggybank.evaluation.math.DoubleMax.exec(DoubleMax.java:70)
    at
org.apache.pig.piggybank.evaluation.math.DoubleMax.exec(DoubleMax.java:57)
    at
org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POUserFunc.getNext(POUserFunc.java:201)
    ... 10 more
Caused by: java.lang.NullPointerException
    ... 13 more

2)---
ERROR 1000: Error during parsing. Invalid alias: org in {appID:
float,rankW2: float,rankW3: float}

org.apache.pig.impl.logicalLayer.FrontendException: ERROR 1000: Error during
parsing. Invalid alias: org in {appID: float,rankW2: float,rankW3: float}
    at org.apache.pig.PigServer$Graph.parseQuery(PigServer.java:1037)
    at org.apache.pig.PigServer$Graph.registerQuery(PigServer.java:981)
    at org.apache.pig.PigServer.registerQuery(PigServer.java:383)
    at
org.apache.pig.tools.grunt.GruntParser.processPig(GruntParser.java:717)
    at
org.apache.pig.tools.pigscript.parser.PigScriptParser.parse(PigScriptParser.java:273)
    at
org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:166)
    at
org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:142)
    at org.apache.pig.tools.grunt.Grunt.run(Grunt.java:75)
    at org.apache.pig.Main.main(Main.java:363)
Caused by: org.apache.pig.impl.logicalLayer.parser.ParseException: Invalid
alias: org in {appID: float,rankW2: float,rankW3: float}
    at
org.apache.pig.impl.logicalLayer.parser.QueryParser.AliasFieldOrSpec(QueryParser.java:6731)
    at
org.apache.pig.impl.logicalLayer.parser.QueryParser.ColOrSpec(QueryParser.java:6575)
    at
org.apache.pig.impl.logicalLayer.parser.QueryParser.BaseEvalSpec(QueryParser.java:4682)
    at
org.apache.pig.impl.logicalLayer.parser.QueryParser.UnaryExpr(QueryParser.java:4579)
    at
org.apache.pig.impl.logicalLayer.parser.QueryParser.CastExpr(QueryParser.java:4525)
    at
org.apache.pig.impl.logicalLayer.parser.QueryParser.MultiplicativeExpr(QueryParser.java:4434)
    at
org.apache.pig.impl.logicalLayer.parser.QueryParser.AdditiveExpr(QueryParser.java:4360)
    at
org.apache.pig.impl.logicalLayer.parser.QueryParser.InfixExpr(QueryParser.java:4326)
    at
org.apache.pig.impl.logicalLayer.parser.QueryParser.FlattenedGenerateItem(QueryParser.java:4252)
    at
org.apache.pig.impl.logicalLayer.parser.QueryParser.FlattenedGenerateItemList(QueryParser.java:4175)
    at
org.apache.pig.impl.logicalLayer.parser.QueryParser.GenerateStatement(QueryParser.java:4119)
    at
org.apache.pig.impl.logicalLayer.parser.QueryParser.NestedBlock(QueryParser.java:3528)
    at
org.apache.pig.impl.logicalLayer.parser.QueryParser.ForEachClause(QueryParser.java:2938)
    at
org.apache.pig.impl.logicalLayer.parser.QueryParser.BaseExpr(QueryParser.java:1314)
    at
org.apache.pig.impl.logicalLayer.parser.QueryParser.Expr(QueryParser.java:893)
    at
org.apache.pig.impl.logicalLayer.parser.QueryParser.Parse(QueryParser.java:682)
    at
org.apache.pig.impl.logicalLayer.LogicalPlanBuilder.parse(LogicalPlanBuilder.java:63)
    at org.apache.pig.PigServer$Graph.parseQuery(PigServer.java:1031)
    ... 8 more
*
---
Thanks & Regards,
Narayan.

On Thu, Jun 16, 2011 at 11:30 AM, Daniel Dai <[email protected]> wrote:

> Jonathan is right. math.MAX does not handle null input. Check for null
> before feeding into MAX is necessary.
>
> Daniel

Reply via email to