[ 
https://issues.apache.org/jira/browse/PIG-2404?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13164350#comment-13164350
 ] 

Vivek Padmanabhan commented on PIG-2404:
----------------------------------------

I guess, this issue is happening since PythonInterpreter returns all the 
functions from all the registered python files. 
But the ScriptEngine registers all of them under the last namespace received to 
it.
This is causing the duplicate log, and also leads to incorrect function 
definitions or incorrect namespace to function name mapping.

Since this is a very common scenario, it would be nice to have a fix for this 
in 0.9.
                
> NullPointerException when I have multiple python udfs
> -----------------------------------------------------
>
>                 Key: PIG-2404
>                 URL: https://issues.apache.org/jira/browse/PIG-2404
>             Project: Pig
>          Issue Type: Bug
>    Affects Versions: 0.8.1, 0.9.1
>            Reporter: Vivek Padmanabhan
>
> When I have multiple python udfs registered, the script fails at compile 
> phase while trying to get the udf ouputschema.
> {code}
> register 'a.py' using org.apache.pig.scripting.jython.JythonScriptEngine as 
> a_func;
> register 'b.py' using org.apache.pig.scripting.jython.JythonScriptEngine as 
> b_func;
> a = load 'i1' as (f1:chararray);
> b = foreach a generate a_func.helloworld(), b_func.square(3);
> dump b;
> {code}
> a.py 
> {code}
> @outputSchema("word:chararray")
> def helloworld():  
>   return 'Hello, World'
> {code}
> b.py 
> {code}
> @outputSchemaFunction("squareSchema")
> def square(num):
>   return ((num)*(num))
> {code}
> Moreover , in the log we can see duplicate and incorrect registration of udfs 
> which I believe the cause for the script failure.
> INFO  org.apache.pig.scripting.jython.JythonScriptEngine - Register scripting 
> UDF: a_func.helloworld
> INFO  org.apache.pig.scripting.jython.JythonScriptEngine - Register scripting 
> UDF: b_func.square
> INFO  org.apache.pig.scripting.jython.JythonScriptEngine - Register scripting 
> UDF: b_func.helloworld
> This issue is observed in 0.9,0.8 and  in trunk also.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to