apache pig:用字符串替换null

pxy2qtax  于 2021-06-21  发布在  Pig
关注(0)|答案(1)|浏览(392)

我的数据中有很多空条目。由于以后的处理,如果我可以将null的默认值设置为字符串“other”,这将非常有帮助。我找不到这样做的方法(版本0.8.1-cdh3u4)
另外,我的generate语句中有一些可能返回null的变量,我需要类似于sql decode函数的东西来获取“other”字符串而不是null。
例子:

  1. tmp = FOREACH dump GENERATE site, REGEX_EXTRACT(name, '^(?:([^.]+)\\.?){1}', 1) AS project, ((ami MATCHES '.*datatype.*') ? REGEX_EXTRACT(name, '^(?:([^.]+)\\.?){5}', 1) : 'other') AS datatype, ami, duid, nbfiles, length, rnbfiles, rlength, name;

此处:'site'和'datatype'可以返回一个空字符串(这是有效的)并被解释为null,但应该改为“other”。
谢谢。

csga3l58

csga3l581#

所以我唯一能找到的就是?:三元运算符。这使得整个pig脚本有点冗长,但是,它是有效的:-)

  1. (((ami MATCHES '.datatype.') ? REGEX_EXTRACT(name, '^(?:([^.]+)\.?){5}', 1) : 'other') IS NULL ? 'other' : ((ami MATCHES '.datatype.') ? REGEX_EXTRACT(name, '^(?:([^.]+)\.?){5}', 1) : 'other')) AS datatype

相关问题