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

Ashutosh Chauhan commented on PIG-928:
--------------------------------------

Thanks, Aniket for making those changes. Its getting closer.
* I am still not convinced about the changes required in POUserFunc. That logic 
should really be a part of pythonToPig(pyObject). If python UDF is returning 
byte[], it should be turned into DataByteArray before it gets back into Pig's 
pipeline. And if we do that conversion in pythonToPig() (which is a right place 
to do it) we will need no changes in POUserFunc. 
* As I suggested in previous comment in the same method you should avoid first 
creating Array and then turning that Array in list, you can rather create a 
list upfront and use it.
* Instead of instanceof, doing class equality test will be a wee-bit faster. 
Like instead of (pyObject instanceof PyDictionary) do pyobject.getClass() == 
PyDictionary.class. Obviously, it will work when you know exact target class 
and not for the derived ones.
* parseSchema(String schema) already exist in  org.apache.pig.impl.util.Utils 
class. So, no need for that in ScriptEngine
* For register command, we need to test not only for functionality but for 
regressions as well. Look at TestGrunt.java in test package to get an idea how 
to write test for it.

> UDFs in scripting languages
> ---------------------------
>
>                 Key: PIG-928
>                 URL: https://issues.apache.org/jira/browse/PIG-928
>             Project: Pig
>          Issue Type: New Feature
>            Reporter: Alan Gates
>            Assignee: Aniket Mokashi
>             Fix For: 0.8.0
>
>         Attachments: calltrace.png, package.zip, PIG-928.patch, 
> pig-greek.tgz, pig.scripting.patch.arnab, pyg.tgz, RegisterPythonUDF3.patch, 
> RegisterPythonUDF4.patch, RegisterPythonUDF_Final.patch, 
> RegisterPythonUDFFinale.patch, RegisterPythonUDFFinale3.patch, 
> RegisterPythonUDFFinale4.patch, RegisterPythonUDFFinale5.patch, 
> RegisterPythonUDFLatest.patch, RegisterScriptUDFDefineParse.patch, 
> scripting.tgz, scripting.tgz, test.zip
>
>
> It should be possible to write UDFs in scripting languages such as python, 
> ruby, etc.  This frees users from needing to compile Java, generate a jar, 
> etc.  It also opens Pig to programmers who prefer scripting languages over 
> Java.

-- 
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