Я часами ломал голову над этим. Документы Pig говорят, что он использует регулярное выражение Java, но когда я пробую то же самое в Java с тем же REGEX, он работает, как и ожидалось.
У меня есть эти данные:
id=6139406,ci=6139407,corr_id_=8c0c7700f95aa
id=6139106,ci=6139107,corr_id_=0e89749_df942a
id=6139906,ci=6139907,corr_id_=09ea6&f6cf94cb
id=6141100,ci=6141101,corr_id_=42ab372dfacd5
id=6141100,ci=6141101,corr_id_=asssddsA01
И это простоСвинья пытается фильтровать на основе буквенно-цифровых идентификаторов;
A = LOAD 'users.dat' USING PigStorage(',') AS (id:chararray, tid:chararray, corr_id:chararray); -- loading data
B = FILTER A BY ($2 matches 'corr_id_=[a-zA-Z0-9]*');
DUMP B;
Все работает нормально, пока я не попытаюсь ввести числовую часть регулярного выражения. Как только я ставлю 0-9 или \ d, оба из которых действительны в Java, он не может найти совпадение.
Что мне здесь не хватает?