diff --git ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFMapKeys.java ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFMapKeys.java index 1d4bcef..b3c8962 100644 --- ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFMapKeys.java +++ ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFMapKeys.java @@ -19,6 +19,7 @@ package org.apache.hadoop.hive.ql.udf.generic; import java.util.ArrayList; +import java.util.Map; import org.apache.hadoop.hive.ql.exec.Description; import org.apache.hadoop.hive.ql.exec.UDFArgumentException; @@ -61,7 +62,10 @@ public ObjectInspector initialize(ObjectInspector[] arguments) public Object evaluate(DeferredObject[] arguments) throws HiveException { retArray.clear(); Object mapObj = arguments[0].get(); - retArray.addAll(mapOI.getMap(mapObj).keySet()); + Map mapVal = mapOI.getMap(mapObj); + if (mapVal != null) { + retArray.addAll(mapVal.keySet()); + } return retArray; }