在pig的jsonload中定义json模式

k4ymrczo  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(285)

在使用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 .
有人能帮忙吗?提前谢谢。

aamkag61

aamkag611#

如果你的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))

相关问题