Need a easy way to bind to external Java library functions that require object 
constructors such as Apache Commons Math library
-------------------------------------------------------------------------------------------------------------------------------

                 Key: PIG-1678
                 URL: https://issues.apache.org/jira/browse/PIG-1678
             Project: Pig
          Issue Type: New Feature
            Reporter: David Ciemiewicz


I would like to have a trivial way to bind and invoke Java library functions 
from within Pig without creating wrapper functions in Java.

For instance, I need functions out of the Apache Commons Math library 
(http://commons.apache.org/math/) such as 
BetaDistributionImpl.cumulativeProbability.

I would like to be able to specify Pig a pig binding of:

{code}
register commons-math-2.1.jar;

define (new org.apache.commons.math.distribution.BetaDistributionImpl((double) 
alpha, (double) beta)).cumulativeProbability((double) x) BetaIncomplete(x, 
alpha, beta)
{code}

What is special about BetaDistributionImpl is that I must first construct an 
object instance with parameters of alpha and beta, then I need to invoke the 
object method cumulativeProbability to compute my function.

This requires about 100 lines of Java code to create a wrapper just to this one 
function instance.  And there are something like 1000 functions to bind to.

Better yet, if I could just say something like:

{code}
register commons-math-2.1.jar;

import org.apache.commons.math.distribution.BetaDistributionImpl as BetaDist;

B = foreach A as
       alpha,
       beta,
       x,
       BetaDist(alpha,beta).cumulativeProbability(x) as prob;

{code}

Ideally I'd be able to register or include a list of all the bindings to the 
library without ever having write another Eval func wrapper.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to