Registering a Python function in a directory other than the current working 
directory fails
-------------------------------------------------------------------------------------------

                 Key: PIG-2101
                 URL: https://issues.apache.org/jira/browse/PIG-2101
             Project: Pig
          Issue Type: Bug
          Components: impl
    Affects Versions: 0.8.1
            Reporter: Alan Gates


In MapReduce mode, if the register command references a directory other than 
the current one, executing the Python UDF on the backend fails with:   
Deserialization error: could not instantiate 
'org.apache.pig.scripting.jython.JythonFunction' with arguments 
'[../udfs/python/production.py, production]'

I assume it is using the path on the backend to try to locate the UDF.

The script is:

{code}
register '../udfs/python/production.py' using jython as bballudfs;
players  = load 'baseball' as (name:chararray, team:chararray,
                pos:bag{t:(p:chararray)}, bat:map[]);
nonnull  = filter players by bat#'slugging_percentage' is not null and
                bat#'on_base_percentage' is not null;
calcprod = foreach nonnull generate name, bballudfs.production(
                (float)bat#'slugging_percentage',
                (float)bat#'on_base_percentage');
dump calcprod;
{code}

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to