plusieurs correspondances regex dans cochon pour les fichiers journaux

J'ai 2 fichiers d'entrée.

Entrée 1 (contient plusieurs URL):

(http://a.com/search?q=cache:QD7vZRHkPQoJ:ca.xyz.com/jobs2/view/17069404+&cd=1&hl=en&ct=clnk&gl=ca) (http://a.com/search?q=cache:G9323j2oNbAJ:ca.xyz.com/jobs2/view/5977065+&cd=1&hl=en&ct=clnk&gl=ca) (http://a.com/search?q=cache:aNspmG11qAJ:hk.xyz.com/jobs2/view/16988928+&cd=2&hl=zh-TW&ct=clnk&gl=hk) (http://a.com/search?q=cache:aNspmG11AJ:hk.xyz.com/jobs2/view/16988928+&cd=2&hl=zh-TW&ct=clnk&gl=hk) (http://a.com/search?q=cache:aNspmG11qAJ:hk.xyz.com/jobs2/view/16988928+&cd=2&hl=zh-TW&ct=cl k&gl=hk)

Entrée 2 (contient les expressions régulières suivantes):

.*/view/(\\d+)([+|&|cd|)?]+)?
\/\/[^\x2f]+\.[a-z]{2}\/\d\/$
\/\/[^\?]+\.php\?[a-z]+=\d{3}_\d+$
\/\/[^\x3f]+\.php\?([a-z]+=[0-9]{2,3}&){5}[a-z]+=[0-9]{2,3}$)

Mon exigence est de faire correspondre chacune de ces regex pour voir si elles correspondent à l'une des URL dans le premier fichier d'entrée (plusieurs à plusieurs).

Dois-je écrire chaque regex séparément en utilisant REGEX_EXTRACT_ALL ou y a-t-il une meilleure façon de le faire? (Peut-il être fait en chargeant les deux fichiers et en utilisant foreach/generate avec le nom de champ pour regex au lieu de l'expression réelle comme ci-dessous?)

A = LOAD 'input1.txt' as line1;
B = LOAD 'input2.txt' as line2;
C = FOREACH A GENERATE REGEX_EXTRACT_ALL(line1,'B.line2');
dump C;
0
Je comprends les questions avec regex. Bien que l'exigence est simplement d'utiliser un fichier complet de plusieurs regex sur un fichier complet de journaux (URL dans ce cas). Je vais obtenir le fichier approuvé avec une regex correcte, donc ce n'est pas un problème. Mais je voulais savoir comment je peux faire correspondre chaque regex avec chaque enregistrement de journal sans boucle? Ai-je besoin d'un UDF séparé en python ou autre chose?
ajouté l'auteur dshah, source
Vous ne savez pas ce que vous essayez de faire, mais ces regex semblent problématiques. Ce /[^ \ x3f] + \. PHP \? ([Az] + = [0-9] {2,3} & L'expression {5} [az] + = [0-9] {2,3} $) contient une parenthèse déséquilibrée à la fin. Ce . */View/(\\ d +) ([+ | & | cd |)?] +)? a \\ d + un échappement littéral signifiant escape escape plus beaucoup de d s. Ce [+ | & | cd |)?] + est une classe de caractères avec beaucoup de littéraux d'alternance. Vous utilisez \ d dans certains endroits, [0-9] dans d'
ajouté l'auteur sln, source

Il n'y a pas de réponses.

0