[ https://issues.apache.org/jira/browse/PIG-2547?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13260338#comment-13260338 ]
Daniel Dai commented on PIG-2547: --------------------------------- Looks good, couple of comments: 1. TypedOutputEvalFunc: Get output schema from generic type is already part of EvalFunc, besides, EvalFunc.outputSchema can also handle annotation now, do we still need TypedOutputEvalFunc.outputSchema? 2. FunctionWrapperEvalFunc: better to be in builtin package, so that user can omit package name in Pig script. Also, there seems no coverage for wrapping guava function in TestFunctionWrapperEvalFunc, better to have some. > Easier UDFs: Convenient EvalFunc super-classes > ---------------------------------------------- > > Key: PIG-2547 > URL: https://issues.apache.org/jira/browse/PIG-2547 > Project: Pig > Issue Type: New Feature > Reporter: Bill Graham > Assignee: Bill Graham > Labels: 0.10_blocker > Fix For: 0.10.0, 0.11 > > Attachments: PIG_2547.1.patch, PIG_2547.2.patch > > > We've got a few abstract extensions of EvalFunc that make life easier. If > people are interested we can push said classes into Pig. > There are 3 classes, each extending the next. Class naming is all TBD. > * {{TypedOutputEvalFunc<OUT>}} - Implements {{public Schema > outputSchema(Schema input)}} based on the generic type of the subclass. > Provides common helper validation functions which increment counters for good > and bad Tuple data passed. Useful where the input to be worked on is a tuple > of size N or greater. > * {{PrimitiveEvalFunc<IN, OUT>}} - Same as above with helper validation > allowing the ability it subclass and just implement {{public OUT exec(IN > input)}}, where IN and OUT are primitives. Useful when the input is a single > primitive in position 0 of a tuple. > * {{FunctionWrapperEvalFunc}} - Wraps a Guava Function implementation > (http://guava-libraries.googlecode.com/svn/trunk/javadoc/com/google/common/base/Function.html) > and allows UDFs to be used in Pig scripts like so, where {{MyFunction}} is a > class that implements {{Function}}: > {noformat} > DEFINE myUdf org.apache.pig.FunctionWrapperEvalFunc('MyFunction') > {noformat} > -- 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