使用 pig 脚本查找不匹配的记录

Posted

技术标签:

【中文标题】使用 pig 脚本查找不匹配的记录【英文标题】:Finding unmatched records using pig script 【发布时间】:2014-02-25 08:48:32 【问题描述】:

在我的 POC 中,我正在尝试使用 pig 脚本实现 ETL 数据流(星型模式),众所周知,在加载到事实表之前,我想加载维度。在维度中,我只需要从源(csv 文件)加载新记录,我的意思是维度(sql server)中不存在的记录。 pig 中的所有连接(倾斜、复制和合并连接)都在尝试匹配现有记录并仅生成匹配的记录。您能告诉我如何将不匹配的记录作为输出以加载到我的维度中吗?

谢谢 塞尔瓦姆

【问题讨论】:

【参考方案1】:

源(csv 文件)与维度(sql server)表的左外连接。连接列为空的结果记录是新记录。然后过滤掉join列值为null的记录。

【讨论】:

谢谢 Hussain:-) 我试过左外得到以下错误 错误 1066:无法打开别名 Y 的迭代器。后端错误:标量在输出中包含多行。 当您从连接关系中引用列时,使用“::”运算符来解析列,而不是使用“.”。例如。 JOIN_RELATION::col_name 阅读issues.apache.org/jira/browse/PIG-2134了解详情 感谢 Hussain,在您的帮助下对我有用:-) 还有一个问题,是否可以使用 pig 创建代理键?如果是的话,你能告诉我逻辑吗?谢谢 @user3350280 抱歉,我无法回答您的问题。你的意思是你想使用 Pig 在其他数据源中创建一个键? .如果它解决了您提出的问题,请接受我的回答。

以上是关于使用 pig 脚本查找不匹配的记录的主要内容,如果未能解决你的问题,请参考以下文章

Apache Pig - 如何维护一个分布式查找表以供我的 python UDF 访问?

仅当值不同时才更新 HBase 表

处理 PIG Latin 中的重复记录

用于过滤多个字符串上的文件的 Pig 脚本/命令

记录主动泄漏到 Hadoop Pig 中?

Python - 如何从三个数据集中查找不匹配的记录