首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Pig检查JSON中缺少的密钥?

如何使用Pig检查JSON中缺少的密钥?
EN

Stack Overflow用户
提问于 2016-02-27 19:13:44
回答 1查看 173关注 0票数 1

我有一个具有不同模式的JSON文件。

代码语言:javascript
复制
{"asin":"xxxxxx", "title":"xxxsomething"}
{"asin":"yyyyy"}
{"asin":"zzzzzz", "title":"zzzsomething"}

为此,我编写了一个使用推特的象鸟库加载JSON数据并将其转换为一个选项卡分隔文件的pig脚本。

但是,如果输入JSON文件中的一行缺少"title“键(在上面的示例中是line#2),那么tvs文件也没有任何替代它的地方,例如:

代码语言:javascript
复制
xxxxxx  xxxsomething
yyyyyy  
zzzzzz  zzzsomething

如果缺少特定的键,我希望给出自定义的默认值。我如何使用PigLatin?来完成这个任务?

预期产出:

代码语言:javascript
复制
xxxxxx  xxxsomething
yyyyyy  default_string
zzzzzz  zzzsomething

这是我的剧本:

代码语言:javascript
复制
REGISTER elephant-bird-elephant-bird-4.13/pig/target/elephant-bird-pig-4.13.jar;
REGISTER elephant-bird-elephant-bird-4.13/hadoop-compat/target/elephant-bird-hadoop-compat-4.13.jar;
REGISTER elephant-bird-elephant-bird-4.13/core/target/elephant-bird-core-4.13-thrift9.jar;

reviews = load '../data/Amazon/meta_Amazon_Instant_Video.json'
          using com.twitter.elephantbird.pig.load.JsonLoader();

tabs = FOREACH reviews generate (chararray)$0#'asin' as asin_new, (chararray)$0#'title';

A = ORDER tabs BY asin_new;
DESCRIBE A;

STORE A INTO 'hdfs://localhost:9000/meta_Amazon_Instant_Video.tsv';
EN

回答 1

Stack Overflow用户

发布于 2016-02-27 19:43:29

您只需为此编写一个UDF,并将条件设置为,如果其中任何一个为空,则传递默认字符串。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35674206

复制
相关文章

相似问题

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