FAQ
Hi,

Is there a good way to access nested properties that are multilevel deep from Json objects loaded in Pig ?

For example, if my json is like:

{"keyA":{"pA":"vA"}} and I need to access "pA".

Thanks,
-Rakesh

Search Discussions

  • Alan Gates at Sep 29, 2010 at 8:54 pm
    Are you loading them as tuples or maps? If you're loading them as
    tuples than you should be able to say x.keyA.pA (which should return
    "vA"). If you're loading them as maps than it would be x#'keyA'#'pA'

    Alan.
    On Sep 28, 2010, at 12:45 PM, rakesh kothari wrote:


    Hi,

    Is there a good way to access nested properties that are multilevel
    deep from Json objects loaded in Pig ?

    For example, if my json is like:

    {"keyA":{"pA":"vA"}} and I need to access "pA".

    Thanks,
    -Rakesh
  • Hc busy at Sep 29, 2010 at 10:47 pm
    I thought map can only take bytearray as value type?
    On Wed, Sep 29, 2010 at 1:53 PM, Alan Gates wrote:

    Are you loading them as tuples or maps? If you're loading them as tuples
    than you should be able to say x.keyA.pA (which should return "vA"). If
    you're loading them as maps than it would be x#'keyA'#'pA'

    Alan.


    On Sep 28, 2010, at 12:45 PM, rakesh kothari wrote:

    Hi,

    Is there a good way to access nested properties that are multilevel deep
    from Json objects loaded in Pig ?

    For example, if my json is like:

    {"keyA":{"pA":"vA"}} and I need to access "pA".

    Thanks,
    -Rakesh
  • Alan Gates at Sep 29, 2010 at 11:25 pm

    On Sep 29, 2010, at 3:46 PM, hc busy wrote:

    I thought map can only take bytearray as value type?
    No, it can take any type as a value. There are just a number of
    places where Pig assumes it is a byte array and then does the wrong
    thing (like if you try to order by it). If the user just dereferences
    the object as if it were a tuple or a map then Pig should implicitly
    cast it and do the right thing.

    As a side note, we plan to fix the bad byte array assumptions issues
    in Pig 0.9. See in particular https://issues.apache.org/jira/browse/PIG-1281
    , https://issues.apache.org/jira/browse/PIG-1065, and https://issues.apache.org/jira/browse/PIG-999
    .

    Alan.
    On Wed, Sep 29, 2010 at 1:53 PM, Alan Gates wrote:

    Are you loading them as tuples or maps? If you're loading them as
    tuples
    than you should be able to say x.keyA.pA (which should return
    "vA"). If
    you're loading them as maps than it would be x#'keyA'#'pA'

    Alan.


    On Sep 28, 2010, at 12:45 PM, rakesh kothari wrote:

    Hi,

    Is there a good way to access nested properties that are
    multilevel deep
    from Json objects loaded in Pig ?

    For example, if my json is like:

    {"keyA":{"pA":"vA"}} and I need to access "pA".

    Thanks,
    -Rakesh
  • Hc busy at Sep 30, 2010 at 3:09 am
    hooray!
    On Wed, Sep 29, 2010 at 4:24 PM, Alan Gates wrote:


    On Sep 29, 2010, at 3:46 PM, hc busy wrote:

    I thought map can only take bytearray as value type?
    No, it can take any type as a value. There are just a number of places
    where Pig assumes it is a byte array and then does the wrong thing (like if
    you try to order by it). If the user just dereferences the object as if it
    were a tuple or a map then Pig should implicitly cast it and do the right
    thing.

    As a side note, we plan to fix the bad byte array assumptions issues in Pig
    0.9. See in particular https://issues.apache.org/jira/browse/PIG-1281,
    https://issues.apache.org/jira/browse/PIG-1065, and
    https://issues.apache.org/jira/browse/PIG-999.

    Alan.


    On Wed, Sep 29, 2010 at 1:53 PM, Alan Gates wrote:

    Are you loading them as tuples or maps? If you're loading them as tuples
    than you should be able to say x.keyA.pA (which should return "vA"). If
    you're loading them as maps than it would be x#'keyA'#'pA'

    Alan.


    On Sep 28, 2010, at 12:45 PM, rakesh kothari wrote:


    Hi,
    Is there a good way to access nested properties that are multilevel deep
    from Json objects loaded in Pig ?

    For example, if my json is like:

    {"keyA":{"pA":"vA"}} and I need to access "pA".

    Thanks,
    -Rakesh

  • Rakesh kothari at Oct 7, 2010 at 5:56 pm
    Thanks Alan. That works!

    -Rakesh
    From: gates@yahoo-inc.com
    To: pig-user@hadoop.apache.org
    Subject: Re: Accessing Nested Json
    Date: Wed, 29 Sep 2010 13:53:42 -0700

    Are you loading them as tuples or maps? If you're loading them as
    tuples than you should be able to say x.keyA.pA (which should return
    "vA"). If you're loading them as maps than it would be x#'keyA'#'pA'

    Alan.
    On Sep 28, 2010, at 12:45 PM, rakesh kothari wrote:


    Hi,

    Is there a good way to access nested properties that are multilevel
    deep from Json objects loaded in Pig ?

    For example, if my json is like:

    {"keyA":{"pA":"vA"}} and I need to access "pA".

    Thanks,
    -Rakesh

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
groupuser @
categoriespig, hadoop
postedSep 28, '10 at 8:12p
activeOct 7, '10 at 5:56p
posts6
users3
websitepig.apache.org

People

Translate

site design / logo © 2021 Grokbase