首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >PIG中Elephant-Bird UDF中JSON数组字段的处理

PIG中Elephant-Bird UDF中JSON数组字段的处理
EN

Stack Overflow用户
提问于 2012-03-24 06:04:34
回答 3查看 2.7K关注 0票数 1

关于PIG中的JSON处理的一个快速问题。

我尝试了一些名为Elephant-Bird的JsonLoader来加载和处理JSON数据,如下所示:

代码语言:javascript
运行
复制
{
   "SV":1,
   "AD":[
      {
         "ID":"46931606",
         "C1":"46",
         "C2":"469",
         "ST":"46931",
         "PO":1
      },
      {
         "ID":"46721489",
         "C1":"46",
         "C2":"467",
         "ST":"46721",
         "PO":5
      }
   ]
}

加载器可以很好地处理简单字段,但不能很好地处理任何数组字段。我不知道如何使用这个UDF或任何其他方式访问数组中的元素(上面的“AD”字段)?请给我建议。

EN

Stack Overflow用户

发布于 2015-03-27 05:49:35

正如其他人评论的那样,在加载过程中,array变成了一个需要压平的袋子。为了使其自包含,下面是整个脚本的示例:

代码语言:javascript
运行
复制
REGISTER elephant-bird-core-4.3.jar;
REGISTER elephant-bird-hadoop-compat-4.5.jar;
REGISTER elephant-bird-pig-4.5.jar;

DEFINE JsonLoader com.twitter.elephantbird.pig.load.JsonLoader('-nestedLoad=true');

records = LOAD '$DATA_PATH' USING JsonLoader() AS (data: map[]);
records = FOREACH records GENERATE 
                                data#'SV' AS SV,
                                FLATTEN(data#'AD') AS AD;
records = FOREACH records GENERATE
                                SV,
                                AD#'ID' AS ID,
                                AD#'C1' AS C1,
                                AD#'C2' AS C2,
                                AD#'ST' AS ST,
                                AD#'PO' AS PO;
票数 0
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9847058

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档