double 値 42.2223 を含む列があります。この特定の列の下 4 桁を切り捨てたいと考えています。
この特定のシナリオにハイブ UDF を提供してもらえますか?
切り捨て可能な文字数を指定できる上記の質問の 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();
}
}
}