我正在对袋子的 null 和 empty 进行条件检查。包含多个 map 数组。每当“信息”为空或为空时,我想将虚拟 map 值放入其中。因为在下一步中,我要对“信息”进行 FLATTEN 操作。
为什么我需要这个,因为 FLATTEN 中的 null 或空包将从我不需要的数据中删除完整记录。
((info is null or IsEmpty(info)) ? {(['Unknown'#'unknown'])} : info) as info;
这是给我以下编译错误?
2014-09-02 06:20:37,978 [main] 错误 org.apache.pig.tools.grunt.Grunt - 错误 1000:解析期间出错。在第 24 行第 70 列遇到 "": ""。 期待其中之一: “猫” ... “清除” ... “FS” ... “嘘”... “光盘”... “cp”…… "copyFromLocal"...
最佳答案
创建 map 时似乎存在语法错误。有一种使用 TOMAP 创建 map 的简单方法函数,您可以按如下方式使用:
((info is null or IsEmpty(info)) ? {(TOMAP('Unknown','unknown'))} : info) as info;
关于hadoop - 如何在 pig 中插入虚拟 map 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25617087/