我有一个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
()
答案 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存储库中发布的示例,以便更好地了解输出的格式。