Предполагая, что файлы фильтра помещаются в память на вычислительных узлах - используйте Perl или другой любимый язык для сопоставления и потоковой передачи данных через этот фильтр, например ::10000
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';
Это выполняется за один проход.
Вызовите этот сценарий Pig из сценария bash, который определяет $ filter и другие параметры.
Реализуйте сопоставление строк и вывод в сценарии $, который будет загружать $ filter1, $ filter2 и $ filter3, выполнять сопоставление из STDIN и производить вывод в нужном формате.