我有一个json编码数据需要使用pig解析。
{ “ARR”:[1,2,3,4]}
根据http://help.mortardata.com/technologies/pig/json#toc_4JsonLoaderSchemaGuidelines的文件 , 我的加载架构是:
a = load 'testJsonPig.log' using JsonLoader('arr:{t:(i:int)}');
并转储它:
dump a;
但我得到了一个令人期待的结果:
()
结果是空的,我不知道为什么会这样,我似乎遇到了与此链接相同的问题 Pig default JsonLoader schema issue 描述
我的猪版本是
Apache Pig版本0.12.1(r1585011)
并希望有人可以提前帮助我。
答案 0 :(得分:1)
PIG-2949是描述此问题的问题。它已经解决,应该像Pig 0.15.0一样开箱即用。所以是的 - 正如OP发现的那样 - elephantbird是处理此类数组的唯一简单方法现在,但很快猪就能够原生地处理它们。
(完全披露 - 我自己关闭了这个问题)
答案 1 :(得分:0)
最后我使用elephantbird jsonloader来解决我的问题。
答案 2 :(得分:0)
arr:bag{a:tuple(a:int)}
应该有用。
答案 3 :(得分:0)
可以跳过上述解决方案中的包和元组关键字。
a = load 'testJsonPig.log' using JsonLoader('arr:{(int)}');
DUMP a;
输出: ({(1),(2),(3),(4)})
创建一个元组包,每个元组包含1个元素。