Question

Je travaille sur un script Pig (mon premier) qui charge un grand fichier texte. Pour chaque enregistrement dans ce fichier texte, le contenu d'un besoin de terrain pour être envoyé à un service RESTful pour le traitement. Rien ne doit être évaluée ou filtrée. Capture des données, l'envoient et le script ne back rien pas besoin.

Je suppose qu'une UDF est nécessaire pour ce type de fonctionnalité, mais je suis assez nouveau Pig que je n'ai pas une image claire de ce que type de la fonction que je devrais construire . Ma meilleure estimation serait Fonction magasin depuis les données sont en fin de compte se stockées quelque part, mais je me sens comme la quantité de conjectures pour en arriver à cette conclusion est plus élevé que ce que je voudrais.

Toute idée ou d'orientation serait très apprécié.

Était-ce utile?

La solution 2

Ayant jamais trouvé même un soupçon d'une réponse à cette question, j'ai décidé de se déplacer dans une autre direction. J'utilise Pig pour charger et analyser le fichier volumineux, mais le streaming chaque enregistrement que je me soucie de PHP pour le traitement supplémentaire de porc ne semble pas avoir la capacité de gérer proprement.

Il est toujours pas complet (lire: il y a un grand grand, très malheureux bug dans le mélange) , mais je pense que le concept est solide -. juste besoin de travailler sur les détails de mise en œuvre

everything = LOAD 'categories.txt' USING PigStorage() AS (category:chararray);
-- apply filter
-- apply filter
-- ...
-- apply last filter
ordered  = ORDER filtered_categories BY category;

streamed = STREAM limited THROUGH `php -nF process_categories.php`;
DUMP streamed;

Autres conseils

Avez-vous eu un coup d'œil à DBStorage qui fait quelque chose de similaire?

everything = LOAD 'categories.txt' USING PigStorage() AS (category:chararray);
...
STORE ordered INTO RestStorage('https://...');
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top