Package org.apache.pig.impl.logicalLayer.schema

Examples of org.apache.pig.impl.logicalLayer.schema.Schema


                    //predecessors haven't been setup, return null
                    return null;
                }
            }
           
            Schema inputSchema = new Schema();
            List<ExpressionOperator> args = getArguments();
            for(ExpressionOperator op: args) {
                if (!DataType.isUsableType(op.getType())) {
                    mFieldSchema = null;
                    mIsFieldSchemaComputed = false;
                    int errCode = 1014;
                    String msg = "Problem with input: " + op + " of User-defined function: " + this ;
                    throw new FrontendException(msg, errCode, PigException.INPUT, false, null) ;
                }
                inputSchema.add(op.getFieldSchema());   
            }
   
            EvalFunc<?> ef = (EvalFunc<?>) PigContext.instantiateFuncFromSpec(mFuncSpec);
            Schema udfSchema = ef.outputSchema(inputSchema);
            byte returnType = DataType.findType(ef.getReturnType());

            if (null != udfSchema) {
                Schema.FieldSchema fs;
//                try {
                    if(udfSchema.size() == 0) {
                        fs = new Schema.FieldSchema(null, null, returnType);
                    } else if(udfSchema.size() == 1) {
                        fs = new Schema.FieldSchema(udfSchema.getField(0));
                    } else {
                        fs = new Schema.FieldSchema(null, udfSchema, DataType.TUPLE);
                    }
//                } catch (ParseException pe) {
//                    throw new FrontendException(pe.getMessage());
View Full Code Here


    /***
     * The logic here is to check if we have duplicate alias in each schema
     */
    protected void validate(LogicalOperator lo) throws PlanValidationException {
        try {
            Schema schema = lo.getSchema();
            if (schema != null) {
                for (int i = 0; i < schema.size(); i++)
                    for (int j = i + 1; j < schema.size(); j++) {
                        if (schema.getField(i) != null
                                && schema.getField(j) != null
                                && schema.getField(i).alias != null
                                && schema.getField(j).alias != null
                                && schema.getField(i).alias.equals(schema
                                        .getField(j).alias)) {
                            int errCode = 1108;
                            String msg = "Duplicate schema alias: "
                                    + schema.getField(i).alias;
                            if (lo.getAlias()!=null)
                                msg = msg + " in \"" + lo.getAlias()+"\"";
                            throw new PlanValidationException(msg, errCode,
                                    PigException.INPUT);
                        }
View Full Code Here

        }
    }

    @Override
    public Schema outputSchema(Schema input) {
        return new Schema(new Schema.FieldSchema(null, DataType.DOUBLE));
    }
View Full Code Here

        }
    }

    @Override
    public Schema outputSchema(Schema input) {
        return new Schema(new Schema.FieldSchema(null, DataType.DOUBLE));
    }
View Full Code Here

    return Math.abs(d);
  }
 
  @Override
  public Schema outputSchema(Schema input) {
        return new Schema(new Schema.FieldSchema(getSchemaName(this.getClass().getName().toLowerCase(), input), DataType.DOUBLE));
  }
View Full Code Here

        }
    }

    @Override
    public Schema outputSchema(Schema input) {
        return new Schema(new Schema.FieldSchema(null, DataType.CHARARRAY));
    }
View Full Code Here

        }
    }

    @Override
    public Schema outputSchema(Schema input) {
        return new Schema(new Schema.FieldSchema(null, DataType.DOUBLE));
    }
View Full Code Here

        }
    }

    @Override
    public Schema outputSchema(Schema input) {
        return new Schema(new Schema.FieldSchema(null, DataType.DOUBLE));
    }
View Full Code Here

        // Since ef only set one time, we never change its value, so we can optimize it by instantiate only once.
        // This significantly optimize the performance of frontend (PIG-1738)
        if (ef==null)
            ef = (EvalFunc<?>) PigContext.instantiateFuncFromSpec(mFuncSpec);
        Schema udfSchema = ef.outputSchema(Util.translateSchema(inputSchema));

        if (udfSchema != null) {
            Schema.FieldSchema fs;
            if(udfSchema.size() == 0) {
                fs = new Schema.FieldSchema(null, null, DataType.findType(ef.getReturnType()));
            } else if(udfSchema.size() == 1) {
                fs = new Schema.FieldSchema(udfSchema.getField(0));
            } else {
                fs = new Schema.FieldSchema(null, udfSchema, DataType.TUPLE);
            }
            fieldSchema = Util.translateFieldSchema(fs);
        } else {
View Full Code Here

    String mExpression = null;
    Pattern mPattern = null;
    @Override
    public Schema outputSchema(Schema input) {
      try {
          return new Schema(new Schema.FieldSchema(getSchemaName(this.getClass().getName().toLowerCase(), input), DataType.CHARARRAY));
      } catch (Exception e) {
        return null;
      }
    }
View Full Code Here

TOP

Related Classes of org.apache.pig.impl.logicalLayer.schema.Schema

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.