You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hive.apache.org by "navanee (JIRA)" <ji...@apache.org> on 2014/05/28 09:19:02 UTC

[jira] [Created] (HIVE-7132) Hive 0.11.0 Custom UDTF doesnt call close method

navanee created HIVE-7132:
-----------------------------

             Summary: Hive 0.11.0 Custom UDTF doesnt call close method
                 Key: HIVE-7132
                 URL: https://issues.apache.org/jira/browse/HIVE-7132
             Project: Hive
          Issue Type: Bug
          Components: Query Processor
    Affects Versions: 0.11.0
         Environment: shark 0.9.1,hive 0.11.0
            Reporter: navanee


In My Custom UDTF, Process method collects all row info and store them in array list, 
and in close method, i will try to forward the array list.

But some how ,my close method didnt get called while executing custom UDTF, getting empty as result.

private PrimitiveObjectInspector[] inputOIs; // input ObjectInspectors
private List<Set<Object>> distincts = new ArrayList<Set<Object>>();

 @Override
  public void process(Object[] arg0) throws HiveException {
    for (int i = 0; i < arg0.length; i++) {
        String value =  inputOIs[i].getPrimitiveJavaObject(arg0[i]).toString();
        distincts.get(i).add(value);
   }
}

@Override
  public void close() throws HiveException {
     forward(new Object[]{distincts});
 }

  @Override
  public StructObjectInspector initialize(ObjectInspector[] arg0) throws UDFArgumentException {
    inputOIs=new PrimitiveObjectInspector[arg0.length]; 
    List<String> _fields = new ArrayList<String>();
    List<ObjectInspector> fieldOIs = new ArrayList<ObjectInspector>();
  for (int i = 0; i < arg0.length; i++) {
      inputOIs[i]=(PrimitiveObjectInspector) arg0[i];
      distincts.add(new HashSet<Object>());
      _fields.add(new Integer(i).toString());
        fieldOIs.add(PrimitiveObjectInspectorFactory.javaStringObjectInspector);
    }
    return ObjectInspectorFactory.getStandardStructObjectInspector(_fields, fieldOIs);

  }

I tried the same code in hive 0.12, its working perfectly. But i am using shark 0.9.1, supports only hive 0.11.

Please help me on the issue




--
This message was sent by Atlassian JIRA
(v6.2#6252)