Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
  * distributed with this work for additional information
  * regarding copyright ownership.  The ASF licenses this file
  * to you under the Apache License, Version 2.0 (the
  * "License"); you may not use this file except in compliance
  * with the License.  You may obtain a copy of the License at
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * See the License for the specific language governing permissions and
 * limitations under the License.
package org.apache.pig.builtin;
ROUND implements a binding to the Java function Math.round(double). Given a single data atom it Returns the closest long to the argument.
public class ROUND extends EvalFunc<Long>{
java level API

input expects a single numeric value
output returns a single numeric value, the closest long to the argument
	public Long exec(Tuple inputthrows IOException {
        if (input == null || input.size() == 0)
            return null;
            Double d =  DataType.toDouble(input.get(0));
		    return Math.round(d);
        } catch (NumberFormatException nfe){
            ..println("Failed to process input; error - " + nfe.getMessage());
            return null;
        } catch (Exception e){
            throw new IOException("Caught exception processing input row "e);
	public Schema outputSchema(Schema input) {
        return new Schema(new Schema.FieldSchema(getSchemaName(this.getClass().getName().toLowerCase(), input), .));
    /* (non-Javadoc)
     * @see org.apache.pig.EvalFunc#getArgToFuncMapping()
    public List<FuncSpecgetArgToFuncMapping() throws FrontendException {
        List<FuncSpecfuncList = new ArrayList<FuncSpec>();
        funcList.add(new FuncSpec(this.getClass().getName(), new Schema(new Schema.FieldSchema(null.))));
        funcList.add(new FuncSpec(DoubleRound.class.getName(),  new Schema(new Schema.FieldSchema(null.))));
        funcList.add(new FuncSpec(FloatRound.class.getName(),   new Schema(new Schema.FieldSchema(null.))));
        return funcList;
New to GrepCode? Check out our FAQ X