I'm working on a UDAF that takes in a constant string that defines what the final output of the UDAF will be. In the mode=PARTIAL1 call to the init function all the parameters are available and the constant can be read so the output ObjectInspector can be built. I haven't found a way to pass this same constant data through so it is available to the mode=FINAL call to init.
Is there a way to pass constant parameters through the UDAF so it is available in the mode=FINAL init call? I have tried having the PARTIAL1 init call return a StructObjectInspector containing constant object inspectors with the data, but when that is read during the FINAL call the incoming ObjectInspectors are no longer constants. I've looked for ways to access the JobConf object for the job to try to pass this parameter along, but I can't find a way to access that from Hive. I can pass the data along with the data coming from terminatePartial, but that data is not available until merge is called and init in FINAL mode may be called without another invocation of init. Note: this is with Hive 0.10. While I'd like to get this working under 0.10 I'd like to know if this is a feature available in newer releases. Thanks, John