Parquet/parquet-mr — pull request #24 by dvryaboy (2013-04-08 22:53:21+00:00)
Title: Cascading Thrift and Scrooge support

This pull request adds parquet-cascading and parquet-scrooge subprojects.

Parquet-cascading provides a base ValueScheme that can return a single complex object (so, not the Cascading tuple api -- just a one-element tuple that contains a "value" read from an Input format). It also provides a concrete implementation of TBaseScheme, which reads in Thrift objects from Parquet and makes them available to Cascading.

Parquet-Scrooge allows one to use an alternate implementation of Thrift, [Scrooge](https://github.com/twitter/scrooge). It does this by implementing a ScroogeRecordConverter, which can be specified for the Thrift InputFormat instead of the default TBase. A Cascading Scheme that returns Scrooge objects instead of TBase objects is also defined.

A useful side effect of this work is that parquet-cascading now has a wrapper InputFormat that converts IFs from mapreduce into mapred without requiring that the IFs reuse keys and values (at the cost of working on containers instead of objects directly).