diff --git a/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFAcos.java b/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFAcos.java index 18c79a7..06dc6d2 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFAcos.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFAcos.java @@ -36,12 +36,10 @@ public class UDFAcos extends UDFMath { private final DoubleWritable result = new DoubleWritable(); - public UDFAcos() { - } - /** * Take Arc Cosine of a in radians. */ + @Override public DoubleWritable evaluate(DoubleWritable a) { if (a == null) { return null; diff --git a/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFAsin.java b/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFAsin.java index cfd5d38..9e854da 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFAsin.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFAsin.java @@ -38,12 +38,10 @@ public class UDFAsin extends UDFMath { private final DoubleWritable result = new DoubleWritable(); - public UDFAsin() { - } - /** * Take Arc Sine of a in radians. */ + @Override public DoubleWritable evaluate(DoubleWritable a) { if (a == null) { return null; diff --git a/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFAtan.java b/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFAtan.java index 641bba2..f774af0 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFAtan.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFAtan.java @@ -18,8 +18,6 @@ package org.apache.hadoop.hive.ql.udf; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; import org.apache.hadoop.hive.ql.exec.Description; import org.apache.hadoop.hive.ql.exec.vector.VectorizedExpressions; import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.FuncATanDoubleToDouble; @@ -36,19 +34,14 @@ @VectorizedExpressions({FuncATanLongToDouble.class, FuncATanDoubleToDouble.class}) public class UDFAtan extends UDFMath { - @SuppressWarnings("unused") - private static Log LOG = LogFactory.getLog(UDFAtan.class.getName()); + private final DoubleWritable result = new DoubleWritable(); - DoubleWritable result = new DoubleWritable(); - - public UDFAtan() { - } - - public DoubleWritable evaluate(DoubleWritable x) { - if (x == null) { + @Override + public DoubleWritable evaluate(DoubleWritable a) { + if (a == null) { return null; } else { - result.set(Math.atan(x.get())); + result.set(Math.atan(a.get())); return result; } } diff --git a/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFCos.java b/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFCos.java index bfa95ee..e6dbe78 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFCos.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFCos.java @@ -36,12 +36,10 @@ public class UDFCos extends UDFMath { private final DoubleWritable result = new DoubleWritable(); - public UDFCos() { - } - /** * Take Cosine of a. */ + @Override public DoubleWritable evaluate(DoubleWritable a) { if (a == null) { return null; diff --git a/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFDegrees.java b/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFDegrees.java index bc5e1e2..920b299 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFDegrees.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFDegrees.java @@ -17,8 +17,6 @@ */ package org.apache.hadoop.hive.ql.udf; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; import org.apache.hadoop.hive.ql.exec.Description; import org.apache.hadoop.hive.ql.exec.vector.VectorizedExpressions; import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.FuncDegreesDoubleToDouble; @@ -35,18 +33,14 @@ @VectorizedExpressions({FuncDegreesLongToDouble.class, FuncDegreesDoubleToDouble.class}) public class UDFDegrees extends UDFMath { - @SuppressWarnings("unused") - private static Log LOG = LogFactory.getLog(UDFDegrees.class.getName()); - DoubleWritable result = new DoubleWritable(); + private final DoubleWritable result = new DoubleWritable(); - public UDFDegrees() { - } - - public DoubleWritable evaluate(DoubleWritable i) { - if (i == null) { + @Override + public DoubleWritable evaluate(DoubleWritable a) { + if (a == null) { return null; } else { - result.set(Math.toDegrees(i.get())); + result.set(Math.toDegrees(a.get())); return result; } } diff --git a/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFExp.java b/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFExp.java index cf6f53e..6616a72 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFExp.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFExp.java @@ -36,12 +36,10 @@ public class UDFExp extends UDFMath { private final DoubleWritable result = new DoubleWritable(); - public UDFExp() { - } - /** * Raise e (the base of natural logarithm) to the power of a. */ + @Override public DoubleWritable evaluate(DoubleWritable a) { if (a == null) { return null; diff --git a/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLn.java b/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLn.java index eb5f646..d20a1fb 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLn.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLn.java @@ -19,12 +19,10 @@ package org.apache.hadoop.hive.ql.udf; import org.apache.hadoop.hive.ql.exec.Description; -import org.apache.hadoop.hive.ql.exec.UDF; import org.apache.hadoop.hive.ql.exec.vector.VectorizedExpressions; import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.FuncLnDoubleToDouble; import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.FuncLnLongToDouble; import org.apache.hadoop.hive.serde2.io.DoubleWritable; -import org.apache.hadoop.hive.serde2.io.HiveDecimalWritable; /** * UDFLn. @@ -38,12 +36,10 @@ public class UDFLn extends UDFMath { private final DoubleWritable result = new DoubleWritable(); - public UDFLn() { - } - /** * Returns the natural logarithm of "a". */ + @Override public DoubleWritable evaluate(DoubleWritable a) { if (a == null || a.get() <= 0.0) { return null; diff --git a/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLog.java b/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLog.java index 7a4d8a7..4fadbda 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLog.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLog.java @@ -40,12 +40,10 @@ public class UDFLog extends UDFMath { private final DoubleWritable result = new DoubleWritable(); - public UDFLog() { - } - /** * Returns the natural logarithm of "a". */ + @Override public DoubleWritable evaluate(DoubleWritable a) { if (a == null || a.get() <= 0.0) { return null; diff --git a/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLog10.java b/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLog10.java index 00dc319..a36a68a 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLog10.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLog10.java @@ -36,12 +36,10 @@ public class UDFLog10 extends UDFMath { private final DoubleWritable result = new DoubleWritable(); - public UDFLog10() { - } - /** * Returns the logarithm of "a" with base 10. */ + @Override public DoubleWritable evaluate(DoubleWritable a) { if (a == null || a.get() <= 0.0) { return null; diff --git a/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLog2.java b/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLog2.java index 9202258..bfc4700 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLog2.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLog2.java @@ -34,21 +34,20 @@ + " > SELECT _FUNC_(2) FROM src LIMIT 1;\n" + " 1") @VectorizedExpressions({FuncLog2LongToDouble.class, FuncLog2DoubleToDouble.class}) public class UDFLog2 extends UDFMath { - private static double log2 = Math.log(2.0); - private final DoubleWritable result = new DoubleWritable(); + private static final double LOG_2 = Math.log(2.0); - public UDFLog2() { - } + private final DoubleWritable result = new DoubleWritable(); /** * Returns the logarithm of "a" with base 2. */ + @Override public DoubleWritable evaluate(DoubleWritable a) { if (a == null || a.get() <= 0.0) { return null; } else { - result.set(Math.log(a.get()) / log2); + result.set(Math.log(a.get()) / LOG_2); return result; } } diff --git a/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFMath.java b/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFMath.java index c1981af..05aaee6 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFMath.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFMath.java @@ -22,11 +22,13 @@ import org.apache.hadoop.hive.serde2.io.DoubleWritable; import org.apache.hadoop.hive.serde2.io.HiveDecimalWritable; +/** + * This class can be used for math based UDFs that only have an evaluate method for {@code doubles}. By extending from + * this class these UDFs will automatically support decimals as well. + */ public abstract class UDFMath extends UDF { - private final DoubleWritable doubleWritable = new DoubleWritable(); - public UDFMath() { - } + private final DoubleWritable doubleWritable = new DoubleWritable(); /** * For subclass to implement. diff --git a/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFRadians.java b/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFRadians.java index fd1f0e3..a4c1c9e 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFRadians.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFRadians.java @@ -17,8 +17,6 @@ */ package org.apache.hadoop.hive.ql.udf; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; import org.apache.hadoop.hive.ql.exec.Description; import org.apache.hadoop.hive.ql.exec.vector.VectorizedExpressions; import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.FuncRadiansDoubleToDouble; @@ -35,18 +33,14 @@ @VectorizedExpressions({FuncRadiansLongToDouble.class, FuncRadiansDoubleToDouble.class}) public class UDFRadians extends UDFMath { - @SuppressWarnings("unused") - private static Log LOG = LogFactory.getLog(UDFRadians.class.getName()); - DoubleWritable result = new DoubleWritable(); + private DoubleWritable result = new DoubleWritable(); - public UDFRadians() { - } - - public DoubleWritable evaluate(DoubleWritable i) { - if (i == null) { + @Override + public DoubleWritable evaluate(DoubleWritable a) { + if (a == null) { return null; } else { - result.set(Math.toRadians(i.get())); + result.set(Math.toRadians(a.get())); return result; } } diff --git a/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFSign.java b/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFSign.java index 6e4bee0..8292cf4 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFSign.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFSign.java @@ -18,8 +18,6 @@ package org.apache.hadoop.hive.ql.udf; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; import org.apache.hadoop.hive.ql.exec.Description; import org.apache.hadoop.hive.ql.exec.UDF; import org.apache.hadoop.hive.ql.exec.vector.VectorizedExpressions; @@ -31,37 +29,30 @@ import org.apache.hadoop.io.IntWritable; @Description( - name = "sign", - value = "_FUNC_(x) - returns the sign of x )", - extended = "Example:\n " + - " > SELECT _FUNC_(40) FROM src LIMIT 1;\n" + - " 1" - ) + name = "sign", + value = "_FUNC_(x) - returns the sign of x )", + extended = "Example:\n " + + " > SELECT _FUNC_(40) FROM src LIMIT 1;\n" + + " 1" +) @VectorizedExpressions({FuncSignLongToDouble.class, FuncSignDoubleToDouble.class, FuncSignDecimalToLong.class}) public class UDFSign extends UDF { - @SuppressWarnings("unused") - private static Log LOG = LogFactory.getLog(UDFSign.class.getName()); - DoubleWritable result = new DoubleWritable(); - IntWritable intWritable = new IntWritable(); - - public UDFSign() { - } + private final DoubleWritable result = new DoubleWritable(); + private final IntWritable intWritable = new IntWritable(); /** * Take sign of a */ - public DoubleWritable evaluate(DoubleWritable a) { + public DoubleWritable evaluate(DoubleWritable a) { if (a == null) { return null; } - if (a.get()==0) { + if (a.get() == 0) { result.set(0); - } - else if (a.get()>0) { + } else if (a.get() > 0) { result.set(1); - } - else { + } else { result.set(-1); } return result; @@ -69,10 +60,12 @@ else if (a.get()>0) { /** * Get the sign of the decimal input + * * @param dec decimal input + * * @return -1, 0, or 1 representing the sign of the input decimal */ - public IntWritable evaluate(HiveDecimalWritable dec) { + public IntWritable evaluate(HiveDecimalWritable dec) { if (dec == null || dec.getHiveDecimal() == null) { return null; } diff --git a/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFSin.java b/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFSin.java index 8f757f2..ff7be46 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFSin.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFSin.java @@ -19,12 +19,10 @@ package org.apache.hadoop.hive.ql.udf; import org.apache.hadoop.hive.ql.exec.Description; -import org.apache.hadoop.hive.ql.exec.UDF; import org.apache.hadoop.hive.ql.exec.vector.VectorizedExpressions; import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.FuncSinDoubleToDouble; import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.FuncSinLongToDouble; import org.apache.hadoop.hive.serde2.io.DoubleWritable; -import org.apache.hadoop.hive.serde2.io.HiveDecimalWritable; /** * UDFSin. @@ -38,12 +36,10 @@ public class UDFSin extends UDFMath { private final DoubleWritable result = new DoubleWritable(); - public UDFSin() { - } - /** * Take Sine of a. */ + @Override public DoubleWritable evaluate(DoubleWritable a) { if (a == null) { return null; diff --git a/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFSqrt.java b/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFSqrt.java index 17094c9..068fd39 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFSqrt.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFSqrt.java @@ -35,19 +35,17 @@ public class UDFSqrt extends UDFMath { private final DoubleWritable result = new DoubleWritable(); - public UDFSqrt() { - } - /** * Return NULL for NULL or negative inputs; otherwise, return the square root. */ - public DoubleWritable evaluate(DoubleWritable i) { - if (i == null) { + @Override + public DoubleWritable evaluate(DoubleWritable a) { + if (a == null) { return null; - } else if (i.get() < 0) { + } else if (a.get() < 0) { return null; } else { - result.set(Math.sqrt(i.get())); + result.set(Math.sqrt(a.get())); return result; } } diff --git a/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFTan.java b/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFTan.java index c286619..63723a8 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFTan.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFTan.java @@ -18,8 +18,6 @@ package org.apache.hadoop.hive.ql.udf; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; import org.apache.hadoop.hive.ql.exec.Description; import org.apache.hadoop.hive.ql.exec.vector.VectorizedExpressions; import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.FuncTanDoubleToDouble; @@ -27,26 +25,22 @@ import org.apache.hadoop.hive.serde2.io.DoubleWritable; @Description( - name = "tan", - value = "_FUNC_(x) - returns the tangent of x (x is in radians)", - extended = "Example:\n " + - " > SELECT _FUNC_(0) FROM src LIMIT 1;\n" + - " 1" - ) + name = "tan", + value = "_FUNC_(x) - returns the tangent of x (x is in radians)", + extended = "Example:\n " + + " > SELECT _FUNC_(0) FROM src LIMIT 1;\n" + + " 1" +) @VectorizedExpressions({FuncTanLongToDouble.class, FuncTanDoubleToDouble.class}) public class UDFTan extends UDFMath { - @SuppressWarnings("unused") - private static Log LOG = LogFactory.getLog(UDFTan.class.getName()); - DoubleWritable result = new DoubleWritable(); - - public UDFTan() { - } + private final DoubleWritable result = new DoubleWritable(); /** * Take Tangent of a */ - public DoubleWritable evaluate(DoubleWritable a) { + @Override + public DoubleWritable evaluate(DoubleWritable a) { if (a == null) { return null; } else {