Video: HUG Meetup Nov 2014: Apache Pig 0.14 (Part 1) 2024
Hadoop is een rijk en snel evoluerend ecosysteem met een groeiend aantal nieuwe toepassingen. In plaats van te proberen aan alle vereisten voor nieuwe mogelijkheden te voldoen, is Pig ontworpen om uitbreidbaar te zijn via door de gebruiker gedefinieerde functies , ook wel bekend als UDF's.
UDF's kunnen worden geschreven in een aantal programmeertalen, waaronder Java, Python en JavaScript. Ontwikkelaars plaatsen en delen ook een groeiende verzameling online UDF's. (Kijk voor Piggy Bank en DataFu, om slechts twee voorbeelden van dergelijke online collecties te noemen.) Enkele van de Pig UDF's die deel uitmaken van deze repositories zijn LOAD / STORE-functies (bijvoorbeeld XML), datum tijdfuncties, tekst, wiskunde, en statistieken functies.
Pig kan ook worden ingebed in hosttalen zoals Java, Python en JavaScript, waarmee je Pig kunt integreren met je bestaande applicaties. Het helpt ook om beperkingen in de taal van het varken te overwinnen. Een van de beperkingen waarnaar het vaakst wordt verwezen, is dat Pig geen besturingsstroominstructies ondersteunt: if / else, while-lus, for loop en condition-instructies.
Pig ondersteunt native de gegevensstroom, maar moet worden ingebed in een andere taal om een controlestroom te bieden. Er zijn afwegingen, echter van het inbedden van Pig in een controlestroomtaal. Als een Pig-instructie bijvoorbeeld is ingesloten in een lus, wordt telkens als de lus wordt herhaald en de instructie Pig wordt uitgevoerd, een afzonderlijke MapReduce-taak uitgevoerd.