我遇到了将一组json文件加载到PIG中的问题。 我所拥有的是很多json文档,它们在各自的字段中都有所不同,我需要的字段在大多数文档中,在缺少whare时我希望得到空值。将不同架构的json加载到PIG中
我刚刚下载并编译了最新的Pig版本(直接从apache git存储库中获得0.12版本),以确保它尚未解决。
我所拥有的就是这样一个JSON文件:
{"foo":1,"bar":2,"baz":3}
当我使用这个
Json1 = LOAD 'test.json' USING JsonLoader('foo:int,bar:int,baz:int');
DESCRIBE Json1;
DUMP Json1;
我得到预期的结果
Json1: {foo: int,bar: int,baz: int}
(1,2,3)
然而,当这个装入PIG字段在架构中的顺序不同:
Json2 = LOAD 'test.json' USING JsonLoader('baz:int,bar:int,foo:int');
DESCRIBE Json2;
DUMP Json2;
我得到一个令人失望的结果:
Json2: {baz: int,bar: int,foo: int}
(1,2,3)
应该已经
(3,2,1)
显然是在架构定义的字段名都无关的JSON的字段名。
我需要的是从JSON文件(包含嵌入文档!)中加载特定字段到PIG中。
我该如何解决这个问题?
不幸的是,无论您设置的架构如何,JsonLoader按照原样加载字段。 – 2013-03-14 10:07:40