1
Je travaille sur l'analyse des journaux d'accès AWS CloudFront.Apache Pig: paramètres de requête supplémentaires à partir du journal Web
J'ai le code pour charger les lignes du fichier
raw_logs2 =LOAD 'file:///home/ec2-user/ENWRZAC68E00M.2011-02-28-18.72jA8eGh'
USING PigStorage('\t')
AS (
date: chararray, time: chararray, x_edge_location: chararray, sc_bytes: int,
c_ip: chararray, cs_method: chararray, cs_host: chararray, cs_uri_stem: chararray,
sc_status: chararray, cs_referer: chararray, cs_user_agent:chararray, cs_uri_query: chararray
);
Maintenant, je suis en train d'analyser les paramètres de chaîne de requête (paires nom/valeur):
p=searchresults&s=homesforsale&gad=&gci=FOUNTAIN%2520VALLEY&gst=CA&gzi=&k=fountainvalleyca&ts=1298918206&
Comment puis-je ajouter une colonne supplémentaire à ma table raw_logs2 pour les valeurs de p, s et gci dans la chaîne de requête?
Merci pour la réponse Romain. J'ai développé sur l'échantillon et j'ai obtenu ceci: 'code' raw_logs = GÉNÉRER *, FLATTEN (REGEX_EXTRACT_ALL (cs_uri_query, 'p = (. +?) & S = (. +?) & W = (. +?) & H = (. +?) & ad = (. +?) & gad = (. +?) & gci = (. +?) & gst = (. +?) & gzi = (. +?) & kw = (. +?) &. +? ')) AS (p: CHARARRAY, s: CHARARRAY, w: CHARARRAY, h: CHARARRAY, annonce: CHARARRAY, gad: CHARARRAY, gci: CHARARRAY, gst: CHARARRAY, gzi: CHARARRAY, kw: CHARARRAY); '/code' J'utilise pig 0.6.0 et j'obtiens une erreur qu'il a généré et il s'attendait à autre chose. Comment l'appel sait-il que cs_uri_query est arrivé lorsque j'ai chargé raw_logs2 de mon fichier journal? –
J'ai mis à jour à 0.8.0 et ai fait le changement pour ajouter un FOREACH avant cela et cela fonctionne très bien. Merci. –