gpt4 book ai didi

hadoop - 按现有关系按 pig 过滤

转载 作者:行者123 更新时间:2023-12-02 21:47:06 24 4
gpt4 key购买 nike

我有一个看起来像这样的黑名单文件

481295b2-30c7-4191-8c14-4e513c7e7577
481295a2-1234-4191-8c14-4e513c7e7577

以及我正在加载的许多其他数据。
如何过滤出黑名单中已经存在的数据?
用SQL术语表示的 not in
我尝试使用有点像 this的东西
但无法通过关系实现此目的。

最佳答案

您可以使用left joinfilter来实现它。例如。,

data = load '/path/to/data.txt' as (id: chararray);                
blacklist = load '/path/to/blacklist.txt' as (id: chararray);
jnd = join data by id left outer, blacklist by id using 'replicated';
filtered = filter jnd by blacklist::id is null;
result = foreach filtered generate data::id as id;
dump result;

在此示例中,输入数据将由黑名单连接(左外)。之后,我们通过 is null检查删除了与黑名单匹配的行。
using 'replicated'用于告诉Pig将第二个关系加载到内存中以加快连接速度。如果 blacklist太大而无法放入内存,则可以删除 using 'replicated'

关于hadoop - 按现有关系按 pig 过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24233986/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com