我有一个包含网址的文件 和3个包含我想要查看的URL的文件,如果它们存在于第一个文件中
第一个文件的示例是
http://www.url1.com/xxxx/xxx/xxx/xxx/,
http://www/urln.com/zzz/zzz/zzz/zzzz/zzzz/zz
过滤器文件的示例:
过滤器1
url1.com
url2.com
过滤器2
url5.com
url6.com/ddfd
urlx.org
我想要做的是在相同的通道上(如果可能)检查来自filter1的任何网址或过滤器2中的任何网址,依此类推在第一个文件中,如果是将匹配写入以该过滤器命名的文件(过滤器名称无关)。 重要的是每个过滤器
输出将是这样的
filter1.out
http:// www.url1.com/xxx/sss http:// www.url2.com/xxx/xxxx/xxxx
答案 0 :(得分:2)
我会高度描述一下我的鞋子做法:
答案 1 :(得分:2)
假设过滤器文件适合计算节点上的内存 - 使用Perl或其他喜欢的语言通过此过滤器匹配和流式传输数据,例如:
DEFINE MY_FILTER ` perl $script $filter1 $filter2 filter3 ` SHIP('$script','$filter1', '$filter2', '$filter3');
A = load '$input';
B = stream A through MY_FILTER;
store B into '$output';
这一次运行。 从定义$ filter和其他参数的bash脚本中调用此Pig脚本。 在$脚本中实现字符串匹配和输出,它将加载$ filter1,$ filter2和$ filter3,从STDIN进行匹配并以所需格式生成输出。