Apache Pig 如何在加载功能中加入白名单或黑名单?

Posted

技术标签:

【中文标题】Apache Pig 如何在加载功能中加入白名单或黑名单?【英文标题】:Apache Pig How to whitelist or blacklist in Load function? 【发布时间】:2018-08-10 21:30:47 【问题描述】:

我想知道是否可以在 Pig 的加载功能中维护白名单或黑名单。假设我正在执行以下操作:

AllData = LOAD '/path/to/dir/CAT*' USING AvroStorage();

这将加载所有以 CAT 前缀开头的文件。

e.g. CAT1, CAT2, CAT3, CAT4, CAT5, CAT6

我想知道是否可以维护一个黑名单以过滤掉假设CAT2, CAT3 或维护一个仅保留CAT1, CAT4, CAT5, CAT6 的白名单。谢谢!

【问题讨论】:

【参考方案1】:

您可以通过在大括号中列出所有文件名后缀来创建白名单,例如:

AllData = LOAD '/path/to/dir/CAT1,4,5,6' USING AvroStorage();

【讨论】:

感谢您的建议。理想情况下,我想将其列入黑名单,因为有效路径有数千条,但无效路径很少。 可能有办法在load语句中加入黑名单,但不知道怎么做。一种选择是加载所有文件,加载黑名单,外连接 2 个关系,并过滤掉两者中出现的记录。

以上是关于Apache Pig 如何在加载功能中加入白名单或黑名单?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 apache pig 递归加载文件

Apache Pig 中的 HCatalog 可以只加载特定分区吗?

在 Apache Pig 中加载 csv 文件时出错

Apache pig:如何将 ignoreBadFiles 标签与加载功能一起使用?

Apache Pig - 在猪关系中加载时缺少数字数据

当键分为列时,如何在 Apache Pig 中加入两个商店?