我在尝试使用JsonLoader从JSON文件中使用Pig时输入数据集的模式。
数据格式如下:
{
'cat_a':'some_text',
'cat_b':{(attribute_name):(attribute_value)}
}
我试图将架构描述为:
LOAD 'filename' USING JsonLoader('cat_a:chararray, cat_b:(attribute_name:chararray,attribute_value:int)');
我觉得我在cat_b
上错误地描述了架构。
有人可以提供帮助吗? 提前谢谢。
答案 0 :(得分:0)
如果您的json格式为
{"recipe":"Tacos","ingredients":[{"name":"Beef"},{"name":"Lettuce"},{"name":"Cheese"}]}
将上述json存储在test.json
运行以下命令
a = LOAD '/home/abhijit/Desktop/test.json' USING JsonLoader('recipe:chararray,ingredients: {(name:chararray)}');
dump a;
您将输出为
(Tacos,{(Beef),(Lettuce),(Cheese)},)
如果您的json格式低于格式
{"recipe":"Tacos","ingredients":[{"name":"Beef"},{"name":"Lettuce"},{"name":"Cheese"}],"inventor":{"name":"Alex","age":25}}
a = LOAD '/home/abhijit/Desktop/test.json' USING JsonLoader('recipe:chararray,ingredients: {(name:chararray)},inventor: (name:chararray, age:int)');
dump a;
输出
(Tacos,{(Beef),(Lettuce),(Cheese)},(Alex,25))