我有一个带有编码数据的 JSON 文件。我的目标是解码数据并将其保存到具有模式(食物、人、数量)的 HCat 表中。
我的文件.json
{"messages":[{"body":"eyJmb29kIjoiTWFuZ28iLCAicGVyc29uIjoiQWxpY2UiLCAiYW1vdW50IjoxMX0="}]}
{"messages":[{"body":"eyJmb29kIjoiQXBwbGUiLCAicGVyc29uIjoiVG9tIiwgImFtb3VudCI6MjJ9"}]}
{"messages":[{"body":"eyJmb29kIjoiT3JhbmdlIiwgInBlcnNvbiI6IkpvaG4iLCAiYW1vdW50IjozM30="}]}
我的代码
STOCK_A = LOAD 'myfile.json'
USING JsonLoader('messages:{(body:chararray)}');
rowarr1 = FOREACH STOCK_A GENERATE FLATTEN(messages.(body)) as (body);
decodearr = FOREACH rowarr1 GENERATE Base64Decode(body) as (msg);
DESCRIBE decodearr;
DUMP decodearr;
输出
decodearr: {msg: chararray}
({"food":"Mango", "person":"Alice", "amount":11})
({"food":"Apple", "person":"Tom", "amount":22})
({"food":"Orange", "person":"John", "amount":33})
如何使用{food: chararray,person: chararray,amount: int}的模式来拆分和保存它