Calling non default constructor of Final class from Main class in UDF
---------------------------------------------------------------------
Key: PIG-255
URL: https://issues.apache.org/jira/browse/PIG-255
Project: Pig
Issue Type: Improvement
Reporter: Ajay Garg
Priority: Minor
Pig supports the use of define to call a non default constructor. Making it
work across Algebraic functions is not possible with the current code. The
problem is once the func is defined to use a non default constructor which
takes in names of the variables, we have no way of transmitting this
information from the main class to the final class. We tried passing the func
spec through the call to getFinal(). That is, What ever names we get in the
main class we store it and when the getFinal method is called, instead of just
passing the name of the Final class we attach the string args received by the
main class to the name to construct a func spec. For ex. if define COV =
Covariance('Population', 'Height'); Then we would have the "Population' &
'Height' stored in the main class. A call to getFinal would return
Covariance$Final("Population", "Height") instead of just Covariance$Final. I
guess this is the right way to go. However, pig has a problem with this. The
resolveClassName method doesn't think of its args as specs and assumes them to
be just names. So in createJar, when the func spec,
Covariance$Final("Population", "Height") is being resolved it fails. I think
this is an issue with pig and we need to resolve it by clipping the args before
doing a resolveClassName.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.