[
https://issues.apache.org/jira/browse/PIG-3082?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13556686#comment-13556686
]
Julien Le Dem commented on PIG-3082:
------------------------------------
Thanks for fixing Jon!
I find the error message a little confusing:
{noformat}
throw new FrontendException("Given UDF returns an improper Schema. Should only
return Tuple, Bag, or a single item. Returns: " + udfSchema);
{noformat}
It should contain something along the lines of "... outputSchema should return
a Schema containing a single Field ...".
Otherwise, it looks good to me.
Thanks
> outputSchema of a UDF allows two usages when describing a Tuple schema
> ----------------------------------------------------------------------
>
> Key: PIG-3082
> URL: https://issues.apache.org/jira/browse/PIG-3082
> Project: Pig
> Issue Type: Bug
> Reporter: Julien Le Dem
> Assignee: Jonathan Coveney
> Fix For: 0.12
>
> Attachments: PIG-3082-0.patch
>
>
> When defining an evalfunc that returns a Tuple there are two ways you can
> implement outputSchema().
> - The right way: return a schema that contains one Field that contains the
> type and schema of the return type of the UDF
> - The unreliable way: return a schema that contains more than one field and
> it will be understood as a tuple schema even though there is no type (which
> is in Field class) to specify that. This is particularly deceitful when the
> output schema is derived from the input schema and the outputted Tuple
> sometimes contain only one field. In such cases Pig understands the output
> schema as a tuple only if there is more than one field. And sometimes it
> works, sometimes it does not.
> We should at least issue a warning (backward compatibility) if not plain
> throw an exception when the output schema contains more than one Field.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira