Package org.apache.pig.newplan.logical.relational

Examples of org.apache.pig.newplan.logical.relational.LogicalRelationalOperator


            // Get the uid for this projection.  It must match the uid of the
            // value it is projecting.
            long myUid = p.getFieldSchema().uid;
           
            // Find the operator this projection references
            LogicalRelationalOperator pred = p.findReferent();
           
            if (p.getAttachedRelationalOp() instanceof LOGenerate && p.getPlan().getSuccessors(p)==null) {
                // No need to adjust
                return;
            }
            else {
                // Get the schema for this operator and search it for the matching uid
                int match = -1;
                LogicalSchema schema = pred.getSchema();
                if (schema==null)
                    return;
                List<LogicalSchema.LogicalFieldSchema> fields = schema.getFields();
                for (int i = 0; i < fields.size(); i++) {
                    if (fields.get(i).uid == myUid) {
View Full Code Here


   
    @Override
    public LogicalSchema.LogicalFieldSchema getFieldSchema() throws FrontendException {
        if (fieldSchema!=null)
            return fieldSchema;
        LogicalRelationalOperator referent = findReferent();
       
        LogicalSchema schema = referent.getSchema();
       
        if (attachedRelationalOp instanceof LOGenerate && plan.getSuccessors(this)==null) {
            if (!(findReferent() instanceof LOInnerLoad)||
                    ((LOInnerLoad)findReferent()).sourceIsBag()) {
                String alias = findReferent().getAlias();
View Full Code Here

        preds = attachedRelationalOp.getPlan().getPredecessors(attachedRelationalOp);
        if (preds == null || input >= preds.size()) {
            throw new FrontendException("Projection with nothing to reference!", 2225);
        }
       
        LogicalRelationalOperator pred =
            (LogicalRelationalOperator)preds.get(input);
        if (pred == null) {
            throw new FrontendException("Cannot fine reference for " + this, 2226);
        }
        return pred;
View Full Code Here

        LOForEach foreach = new LOForEach(plan);
       
        plan.add(foreach);
        List<Operator> next = plan.getSuccessors(op);
        if (next != null) {
            LogicalRelationalOperator nextOp = (LogicalRelationalOperator)next.get(branch);
            plan.insertBetween(op, foreach, nextOp);
        }
        else {
            plan.connect(op, foreach);
        }
View Full Code Here

        org.apache.pig.newplan.logical.relational.LogicalPlan newPlan = migratePlan(plan);
        assertEquals(3, newPlan.size());
        assertEquals(newPlan.getSources().size(), 1);
       
        // check load
        LogicalRelationalOperator op = (LogicalRelationalOperator)newPlan.getSources().get(0);
        assertEquals(op.getClass(), org.apache.pig.newplan.logical.relational.LOLoad.class);
       
        // check filter
        op = (LogicalRelationalOperator)newPlan.getSuccessors(op).get(0);
        assertEquals(op.getClass(), org.apache.pig.newplan.logical.relational.LOFilter.class);
       
        LogicalExpressionPlan exp = ((org.apache.pig.newplan.logical.relational.LOFilter)op).getFilterPlan();
       
        EqualExpression eq = (EqualExpression)exp.getSources().get(0);
        assertEquals(eq.getLhs().getClass(), ProjectExpression.class);
        assertEquals(((ProjectExpression)eq.getLhs()).getColNum(), 0);
        assertEquals(((ProjectExpression)eq.getLhs()).getInputNum(), 0);
       
        assertEquals(eq.getRhs().getClass(), ConstantExpression.class);
       
        // check store
        op = (LogicalRelationalOperator)newPlan.getSuccessors(op).get(0);
        assertEquals(op.getClass(), org.apache.pig.newplan.logical.relational.LOStore.class);
    }
View Full Code Here

        org.apache.pig.newplan.logical.relational.LogicalPlan newPlan = migratePlan(plan);
        assertEquals(3, newPlan.size());
        assertEquals(newPlan.getSources().size(), 1);
       
        // check load
        LogicalRelationalOperator op = (LogicalRelationalOperator)newPlan.getSources().get(0);
        assertEquals(op.getClass(), org.apache.pig.newplan.logical.relational.LOLoad.class);
       
        // check filter
        op = (LogicalRelationalOperator)newPlan.getSuccessors(op).get(0);
        assertEquals(op.getClass(), org.apache.pig.newplan.logical.relational.LOFilter.class);
       
        LogicalExpressionPlan exp = ((org.apache.pig.newplan.logical.relational.LOFilter)op).getFilterPlan();
       
        EqualExpression eq = (EqualExpression)exp.getSources().get(0);
        assertEquals(eq.getLhs().getClass(), CastExpression.class);
               
        assertEquals(eq.getLhs().getClass(), CastExpression.class);
        LogicalExpression ep = (LogicalExpression)exp.getSuccessors(eq.getLhs()).get(0);
        assertEquals(ep.getClass(), ProjectExpression.class);
        assertEquals(((ProjectExpression)ep).getColNum(), 0);
        assertEquals(((ProjectExpression)ep).getInputNum(), 0);
       
        assertEquals(eq.getRhs().getClass(), ConstantExpression.class);
       
        // check store
        op = (LogicalRelationalOperator)newPlan.getSuccessors(op).get(0);
        assertEquals(op.getClass(), org.apache.pig.newplan.logical.relational.LOStore.class);
    }
View Full Code Here

        org.apache.pig.newplan.logical.relational.LogicalPlan newPlan = migratePlan(plan);
        assertEquals(5, newPlan.size());
        assertEquals(newPlan.getSources().size(), 2);
      
        // check load and join
        LogicalRelationalOperator op = (LogicalRelationalOperator)newPlan.getSuccessors(newPlan.getSources().get(0)).get(0);
        assertEquals(op.getClass(), org.apache.pig.newplan.logical.relational.LOJoin.class);
        assertEquals(((LOJoin)op).getJoinType(), LOJoin.JOINTYPE.HASH);
       
        LogicalRelationalOperator l1 = (LogicalRelationalOperator)newPlan.getPredecessors(op).get(0);
        assertEquals(l1.getClass(), org.apache.pig.newplan.logical.relational.LOLoad.class);
        assertEquals(l1.getAlias(), "a");
       
        LogicalRelationalOperator l2 = (LogicalRelationalOperator)newPlan.getPredecessors(op).get(1);
        assertEquals(l2.getClass(), org.apache.pig.newplan.logical.relational.LOLoad.class);
        assertEquals(l2.getAlias(), "b");

        // check join input plans
        LogicalExpressionPlan p1 = ((LOJoin)op).getJoinPlan(0).iterator().next();
        assertEquals(p1.size(), 1);
       
View Full Code Here

        LogicalPlanTester lpt = new LogicalPlanTester(pc);
        lpt.buildPlan("a = load '/test/d.txt' as (id, d:tuple(v, s));");
        LogicalPlan plan = lpt.buildPlan("b = foreach a generate id, FLATTEN(d);")
               
        org.apache.pig.newplan.logical.relational.LogicalPlan newPlan = migratePlan(plan);
        LogicalRelationalOperator op = (LogicalRelationalOperator)newPlan.getSinks().get(0);
       
        LogicalSchema s2 = new LogicalSchema();
        s2.addField(new LogicalSchema.LogicalFieldSchema("id", null, DataType.BYTEARRAY));
        s2.addField(new LogicalSchema.LogicalFieldSchema("v", null, DataType.BYTEARRAY));
        s2.addField(new LogicalSchema.LogicalFieldSchema("s", null, DataType.BYTEARRAY));
        assertTrue(s2.isEqual(op.getSchema()));
       
        // test no flatten
        lpt = new LogicalPlanTester(pc);
        lpt.buildPlan("a = load '/test/d.txt' as (id, d:bag{t:(v, s)});");
        plan = lpt.buildPlan("b = foreach a generate id, d;")
               
        newPlan = migratePlan(plan);
        op = (LogicalRelationalOperator)newPlan.getSinks().get(0);
       
        LogicalSchema aschema = new LogicalSchema();     
        aschema.addField(new LogicalSchema.LogicalFieldSchema("id", null, DataType.BYTEARRAY));
        LogicalSchema aschema2 = new LogicalSchema();
        LogicalSchema aschema3 = new LogicalSchema();
        aschema3.addField(new LogicalSchema.LogicalFieldSchema("v", null, DataType.BYTEARRAY));
        aschema3.addField(new LogicalSchema.LogicalFieldSchema("s", null, DataType.BYTEARRAY));
        aschema2.addField(new LogicalSchema.LogicalFieldSchema("t", aschema3, DataType.TUPLE));
        aschema.addField(new LogicalSchema.LogicalFieldSchema("d", aschema2, DataType.BAG))
       
        assertTrue(aschema.isEqual(op.getSchema()));
       
        // check with defined data type
        lpt = new LogicalPlanTester(pc);
        lpt.buildPlan("a = load '/test/d.txt' as (id, d:bag{t:(v:int, s)});");
        lpt.buildPlan("b = foreach a generate id, FLATTEN(d);");       
        plan = lpt.buildPlan("store b into '/test/empty';");
               
        newPlan = migratePlan(plan);
        op = (LogicalRelationalOperator)newPlan.getSinks().get(0);
        op = (LogicalRelationalOperator)newPlan.getPredecessors(op).get(0);
        LogicalSchema schema = op.getSchema();
       
        aschema = new LogicalSchema();
        aschema.addField(new LogicalSchema.LogicalFieldSchema("id", null, DataType.BYTEARRAY));
        aschema.addField(new LogicalSchema.LogicalFieldSchema("v", null, DataType.INTEGER));
        aschema.addField(new LogicalSchema.LogicalFieldSchema("s", null, DataType.BYTEARRAY));
        assertTrue(schema.isEqual(aschema));
     
   
        // test with add
        lpt = new LogicalPlanTester(pc);
        lpt.buildPlan("a = load '/test/d.txt' as (id, v:int, s:int);");
        lpt.buildPlan("b = foreach a generate id, v+s;");       
        plan = lpt.buildPlan("store b into '/test/empty';");
       
        newPlan = migratePlan(plan);
        op = (LogicalRelationalOperator)newPlan.getSinks().get(0);
        op = (LogicalRelationalOperator)newPlan.getPredecessors(op).get(0);
        schema = op.getSchema();
       
        aschema = new LogicalSchema();
        aschema.addField(new LogicalSchema.LogicalFieldSchema("id", null, DataType.BYTEARRAY));
        aschema.addField(new LogicalSchema.LogicalFieldSchema(null, null, DataType.INTEGER));
        assertTrue(schema.isEqual(aschema));
View Full Code Here

        LogicalSchema loadSchema =
            ((LogicalRelationalOperator)newPlan.getSources().get(0)).getSchema();
       
        Set<Long> uids = getAllUids(loadSchema);
       
        LogicalRelationalOperator op = (LogicalRelationalOperator)
            newPlan.getSuccessors( newPlan.getSources().get(0) ).get(0);
        assertEquals( LOCogroup.class, op.getClass() );
        LogicalSchema schema = op.getSchema();
       
        assertEquals( 2, schema.size() );
        assertEquals( DataType.CHARARRAY, schema.getField(0).type );
        assertEquals( false, uids.contains( schema.getField(0).uid ) );
        assertEquals( 0, schema.getField(0).alias.compareTo("group") );
View Full Code Here

        LogicalSchema loadSchema =
            ((LogicalRelationalOperator)newPlan.getSources().get(0)).getSchema();
       
        Set<Long> uids = getAllUids(loadSchema);
       
        LogicalRelationalOperator op = (LogicalRelationalOperator)
            newPlan.getSuccessors( newPlan.getSources().get(0) ).get(0);
        assertEquals( LOCogroup.class, op.getClass() );
        LogicalSchema schema = op.getSchema();
       
        assertEquals( 2, schema.size() );
        assertEquals( DataType.TUPLE, schema.getField(0).type );
        assertEquals( false, uids.contains( schema.getField(0).uid ) );
        assertEquals( 0, schema.getField(0).alias.compareTo("group") );
View Full Code Here

TOP

Related Classes of org.apache.pig.newplan.logical.relational.LogicalRelationalOperator

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.