用猪拉丁语分解地图 [chararray]

Breaking down a map[chararray] in pig latin

我对 pig latin 很陌生,所以请原谅我对以下问题的无知。我继承了一些主要执行以下操作的代码:

USERS = LOAD 'hbase://some_table' USING org.apache.pig.backend.hadoop.hbase.HBaseStorage('s:*', '-caster HBaseBinaryConverter --limit some_limit') AS (user_map:map[chararray]);

现在,如果我转储 USERS,我会得到如下内容(假数据)

([n1#{"s":{"added": 1430668638000, "lastseen": 1430668638000, "expires": 1433260638000}},n2#{"s":{"added": 1430668638000, "lastseen": 1430668638000, "expires": 1433692638000}},n22#{"segment":{"added": 1430668638000, "lastseen": 1430668638000, "expires": 1433260638000}},n3#{"s":{"added": 1430668638000, "lastseen": 1430668638000, "expires": 1433692638000}},n4#{"segment":{"added": 1430668638000, "lastseen": 1430668638000, "expires": 1433692638000}}])
([n8#{"s":{"added": 1428792426000, "lastseen": 1428792426000, "expires": 1431816426000}},n9#{"segment":{"added": 1428792426000, "lastseen": 1428792426000, "expires": 1431816426000}},n11#{"segment":{"added": 1428792426000, "lastseen": 1428792426000, "expires": 1431816426000}}])

本质上,我想获得输出中的 n* 值。但我不确定如何将它们从这个模式中分解出来。任何帮助将不胜感激。

为了进一步解释我的问题,也许我对 map:[chararray] 架构(以及如何操作它)的理解还不够

EDIT 我想要的预期输出是将所有 n* 信息存储到一个名为 TITLES 的变量中。这样当我做 DUMP TITLES 我会得到以下

n1#
n2# ...

能够通过编写 python UDF 来回答我自己的问题。在 Pig 中,调用看起来像这样

N_S = FOREACH USERS GENERATE my_udfs.translate_map(user_map)

我的 python udf 看起来像

@outputSchema("doc:chararray")
def translate_map(input):

    n_str = ""
    for k, v in input.items():

        n_str += str(key)
        n_str += " "

    return n_str