diff --git ql/src/java/org/apache/hadoop/hive/ql/udf/UDAFPercentile.java ql/src/java/org/apache/hadoop/hive/ql/udf/UDAFPercentile.java index 92db544..bc26484 100644 --- ql/src/java/org/apache/hadoop/hive/ql/udf/UDAFPercentile.java +++ ql/src/java/org/apache/hadoop/hive/ql/udf/UDAFPercentile.java @@ -234,12 +234,18 @@ public class UDAFPercentile extends UDAF { public boolean iterate(LongWritable o, List percentiles) { if (state.percentiles == null) { - for (int i = 0; i < percentiles.size(); i++) { - if (percentiles.get(i).get() < 0.0 || percentiles.get(i).get() > 1.0) { - throw new RuntimeException("Percentile value must be wihin the range of 0 to 1."); - } + if(percentiles != null) { + for (int i = 0; i < percentiles.size(); i++) { + if (percentiles.get(i).get() < 0.0 || percentiles.get(i).get() > 1.0) { + throw new RuntimeException("Percentile value must be wihin the range of 0 to 1."); + } + } + + state.percentiles = new ArrayList(percentiles); + } + else { + state.percentiles = new ArrayList(); } - state.percentiles = new ArrayList(percentiles); } if (o != null) { increment(state, o, 1);