0

double 値 42.2223 を含む列があります。この特定の列の下 4 桁を切り捨てたいと考えています。

この特定のシナリオにハイブ UDF を提供してもらえますか?

4

2 に答える 2

0

切り捨て可能な文字数を指定できる上記の質問の UDF を作成しました

package com.hive.udf.truncate;
import java.math.BigDecimal;
import org.apache.hadoop.hive.ql.exec.UDF;
public class Trunc extends UDF {
    public double evaluate(double input,int numberOfDecimals){
       if ( input > 0) {
         return new BigDecimal(String.valueOf(input)).setScale(numberOfDecimals, BigDecimal.ROUND_FLOOR).doubleValue();
            } 
       else {
         return new BigDecimal(String.valueOf(input)).setScale(numberOfDecimals, BigDecimal.ROUND_CEILING).doubleValue();
        }
    }
}
于 2016-10-20T07:44:34.710 に答える