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

Thejas M Nair commented on PIG-2910:
------------------------------------

The extra parenthesis added by Schema.toString() are curly braces. I believe 
this is because the schema when thought of as a schema of a relation, is a 
schema of a bag. I don't think the PIG-2910-2.patch will fix the issue.

But changing the behavior of either Schema.toString() or 
Utils.getSchemaFromString() will break backward compatibility. I think we 
should just add a new function Utils.getSchemaFromBagSchemaString() and comment 
that people should use this one to get schema back from output of 
Schema.toString(). 

The use of input schema of udf, during udf execution is not very common. I 
don't think we should serialize it for all udfs.

                
> Make toString() methods on Schema and FieldSchema be readable by 
> Utils.getSchemaFromString()
> --------------------------------------------------------------------------------------------
>
>                 Key: PIG-2910
>                 URL: https://issues.apache.org/jira/browse/PIG-2910
>             Project: Pig
>          Issue Type: Bug
>          Components: impl, parser
>    Affects Versions: 0.9.2, 0.10.0, 0.11, 0.10.1
>            Reporter: Russell Jurney
>            Assignee: Thejas M Nair
>              Labels: newbie
>             Fix For: 0.11, 0.10.1
>
>         Attachments: PIG-2910-1.patch, PIG-2910-2.patch
>
>
> I want to toString() schemas and send them to the backend via UDFContext. At 
> the moment this requires writing your own toString() method that 
> Utils.getSchemaFromString() can read. Making a readable schema for the 
> backend would be an improvement.
> I spoke with Thejas, who believes this is a bug. The workaround for the 
> moment is, for example:
> String schemaString = inputSchema.toString().substring(1, 
> inputSchema.toString().length() - 1);
> // Set the input schema for processing
> UDFContext context = UDFContext.getUDFContext();
> Properties udfProp = context.getUDFProperties(this.getClass());
> udfProp.setProperty("horton.json.udf.schema", schemaString);
> ...
> schema = Utils.getSchemaFromString(strSchema);

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

Reply via email to