在Pig中解析复杂的JSON字符串

在Pig中解析复杂的JSON字符串,json,hadoop,apache-pig,Json,Hadoop,Apache Pig,我想在Pig中解析一个复杂的JSON字符串。具体来说,我希望Pig将我的JSON数组理解为一个包,而不是单个字符。当使用JsonLoader时,我可以通过指定模式轻松地完成这项工作,如中所示。有没有办法让Pig为我找出模式,或者在Pig解析字符串时指定模式?我一直在使用,但找不到一种方法来指定模式,或者让它正确地理解我的JSON数组是一个数组而不是一个字符数组。我最终在中使用了。它通过解析所有JSON实现了我想要的功能,即使它很复杂,即使我没有提供模式也可以这样做。如果你遇到和我一样的问题,就用

我想在Pig中解析一个复杂的JSON字符串。具体来说,我希望Pig将我的JSON数组理解为一个包,而不是单个字符。当使用JsonLoader时,我可以通过指定模式轻松地完成这项工作,如中所示。有没有办法让Pig为我找出模式,或者在Pig解析字符串时指定模式?我一直在使用,但找不到一种方法来指定模式,或者让它正确地理解我的JSON数组是一个数组而不是一个字符数组。

我最终在中使用了。它通过解析所有JSON实现了我想要的功能,即使它很复杂,即使我没有提供模式也可以这样做。如果你遇到和我一样的问题,就用这个

用法示例:

REGISTER '/path/to/akela-0.5-SNAPSHOT.jar';
DEFINE JsonTupleMap com.mozilla.pig.eval.json.JsonTupleMap();
loaded = LOAD '$INPUT' AS (json_string:chararray, ...);
jsonified = FOREACH loaded GENERATE JsonTupleMap(json_string) AS json:map[], ...;
some_generate = FOREACH jsonified GENERATE json#'key'#'sub_key';

你知道在哪里可以找到编译过的jar文件吗?@FabrizioRegini上面的链接中有使用Maven编译jar的说明。这很容易。您需要为您的特定系统进行编译。我在编译大象鸟时遇到问题,有人告诉我jar文件的下载。这就是我问的原因。源代码中可能有基于平台的优化的本机标志。我强烈建议您在生产中使用的相同环境下编译,以充分利用这些优势。