Json Loader的架构?

时间:2014-02-17 16:46:49

标签: apache-pig

我有一个json文档。像下面的文件。

{"sick":["sick","sickness"], "typhoid":["thyphoid A","thyphoid B","typhoid C"]}

如何使用JsonLoader在Pig中加载此文档。这就是我的尝试:

A = LOAD 'd' USING JsonLoader('key:map[]');

我得到的输出是:

Input paths to process : 1
()

1 个答案:

答案 0 :(得分:1)

pig的原生JsonLoader不能很好地处理嵌套数组。

对于使用嵌套数组加载复杂JSON,如果设置Elephant-Bird(https://github.com/kevinweil/elephant-bird/)JsonLoader,则会更容易。然后,您可以执行以下操作:

REGISTER '/path/to/elephant-bird.jar';
B = LOAD '/path/to/your/jsonfile.json' USING com.twitter.elephantbird.pig.load.JsonLoader('-nestedLoad');

-nestedLoad标记将处理任何嵌套的JSON数组。您可能还需要注册json_simple库才能使用。另外,我建议查看Github存储库中发布的示例,以便更好地了解输出的格式。