2013-02-06 4 views
0

J'ai une exigence où je dois analyser le xml pour obtenir les champs souhaités, effectuer des opérations sur le champ désiré et générer un csv en utilisant les données.xml analyse en cochon

J'ai regardé XmlLoader disponible dans le cochon, mais il semble aussi renvoyer les balises xml. Ce qui m'intéresse, ce sont les données. Est-ce que je peux y arriver? J'ai également besoin de générer un fichier CSV en utilisant les données.

Tous les échantillons de travail seraient d'une grande aide.

+0

Comment imbriquée/hiérarchique est votre XML, pouvez-vous poster un exemple? –

Répondre

0

Vous pouvez utiliser REGEX_EXTRACT() pour obtenir les informations sur les balises, possiblement SUBSTRING() et REGEX_EXTRACT_ALL.

0

pot piggybank offre chargeur xml chez le porc

Dans la déclaration de charge de porc que vous devez charger en utilisant ChargeurXML. Où vous devez mentionner correctement votre tag parent.

A = load '/path of the file' using org.apache.pig.piggybank.storage.XMLLoader('parent_tag') as (x:chararray); 
B = foreach A generate REPLACE(x,'[\\n]','') as x; 

Après cela, vous devez utiliser REGEX_EXTRACT_ALL pour extraire les données entre les balises

C = foreach B generate REGEX_EXTRACT_ALL(x,'.*(?:<child_tag1>)([^<]*).*(?:<child_tag2>)([^<]*).*'); 

Pour plus de détails vous pouvez consulter le lien ci-dessous

https://acadgild.com/blog/converting-xml-into-csv-using-pig/