我正在对包的空和空出现进行条件检查。包含多个地图数组。每当'info'为null或为空时,我想将虚拟地图值放入其中。因为在下一步中我正在对'info'进行FLATTEN操作。
为什么我需要这个,因为FLATTEN中的null或空包将从我不想要的数据中删除完整的记录。
((info is null or IsEmpty(info)) ? {(['Unknown'#'unknown'])} : info) as info;
这给我以下编译错误?
2014-09-02 06:20:37,978 [main] ERROR org.apache.pig.tools.grunt.Grunt - 错误1000:解析时出错。在第24行,第70栏遇到“”:“”。 期待以下之一: “猫” ... “清楚”...... “fs”...... “嘘”...... “cd”...... “cp”...... “copyFromLocal”......
答案 0 :(得分:1)
创建地图时似乎存在语法错误。有一种使用TOMAP函数创建地图的简便方法,您可以使用以下方法:
((info is null or IsEmpty(info)) ? {(TOMAP('Unknown','unknown'))} : info) as info;