Google Summer of Code 2012 for Pig

Pig is exciting! Pig provide an intuitive way to program hadoop. Inside Yahoo!, more than 80% of hadoop jobs are Pig jobs. It is heavily used in Twitter, Linkedin and lots of other organizations (

This is the third straight year Pig participate Google Summer of Code. Last year we have 3 students and all of them complete their projects successfully.

Here we picked up a list of highly desired projects for students. Once accepted, we will assign a dedicated mentor to guide you through different stages of the program. We need your help and you will get a great experience of participating an open source project.

Project List

New DataType:Datetime (

A detailed specification:

CUBE operation in Pig (

We would like to implement efficient cubing in Pig. Here is a description:

More sampling algorithm (

Currently, sample statement only support for simple random sampling. It is better we can support more (stratified sampling, bootstrap sample, etc)

Provide a more flexible data format to load complex field (bag/tuple/map) in PigStorage (

We need a more flexible PigStorage to parse complex field, which provide a way to escape special characters, customize delimiters

Implement a distributed Rank (

Implement a rank operator in Pig based on mapreduce

A better plan/data flow visualizer for Pig (

Implement a graphic visualizer for Pig

Move grunt from javacc to ANTRL (

Mavenize Pig (

Switch Pig build system from ant to maven.

Other Project Ideas

You can also propose new project not listed. Please discuss with us before apply.

Getting start

First, you need to learn PigLatin language. The best source for learning PigLatin is:

Be sure to sign up pig mailing list.

Then checkout Pig source code using svn:
svn co

Set up environment for Eclipse:

Learn more about Pig internal at Pig paper at VLDB 2009.

Browse through Pig code. Some good start points are:

Try to start with something simpler:

How to Apply

  • Follow GSoc instruction to apply. Please apply to Apache Software Foundation.
  • A competent application should include:
    1. A little about your background
    2. Your experience level in hadoop/MapReduce/NoSQL or related areas, Java programming skill
    3. Project understanding
    4. Proposed project schedule
  • Keep timeline in mind.
  • It is highly recommend to discuss your interest before you apply. The best way to discuss is to comment on individual Jira or send mail to dev list.

Accepted projects

Here is a list of accepted projects:

  • No labels