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

Jonathan Coveney commented on PIG-2715:
---------------------------------------

Daniel, I am confused. In many cases, users (or functions) can specify the 
schema of the value in the map. As above, it's saying that the key is a String 
(which is implicit as this is the only acceptable key type), and the value is 
an int (named events, though that doesn't mean much).

Why wouldn't we allow this? And if it isn't allowed, we shouldn't print it in 
the toString, it shouldn't parse, etc. It's very confusing to have. But I think 
we should allow it, and it should mean the same thing all schema's mean in pig: 
the values should be of this expected type.
                
> Cannot specify schema field alias for map value via piglatin
> ------------------------------------------------------------
>
>                 Key: PIG-2715
>                 URL: https://issues.apache.org/jira/browse/PIG-2715
>             Project: Pig
>          Issue Type: Bug
>          Components: parser
>    Affects Versions: 0.10.0
>            Reporter: Andy Schlaikjer
>
> Programmatically, pig components are able to define schema field aliases for 
> map values, but the same cannot be done via piglatin. For example:
> {code}
> %default INPUT_PATH 'map_value_alias_bug.tsv';
> A = LOAD '$INPUT_PATH' AS (
>   id: long,
>   -- events: [count: int] -- parse failure
>   events: [int]
> );
> DESCRIBE A;
> A = FOREACH A GENERATE
>   id,
>   -- (map[count: int]) events -- parse failure
>   -- ([count: int]) events -- parse failure
>   -- events: [count: int] -- parse failure
>   -- events AS [count: int] -- parse failure
>   -- events AS events: [count: int] -- parse failure
>   ([int]) events -- this is okay
>   ;
> DESCRIBE A;
> quit;
> {code}
> When using the [Elephant Bird 
> project|https://github.com/kevinweil/elephant-bird/]'s [ThriftToPig 
> utility|https://github.com/kevinweil/elephant-bird/blob/master/src/java/com/twitter/elephantbird/pig/util/ThriftToPig.java#L273]
>  along with a Thrift message spec containing a map field, I see schemas of 
> the following form:
> {code}
> message: {id: long,events: map[events: int])}}
> {code}
> This same DESCRIBE output does not parse if used within piglatin.

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

        

Reply via email to