Instantiating some of the Thrift classes is painful. Consider building a Table object, which requires a StorageDescriptor, which requires a SerDeInfo and a list of FieldInfo. All that is really necessary for a Table in the most simple case is a name, a database, and some columns. But currently creating even a simple Table requires 20+ lines of code. This is particularly painful in tests.
I propose to add a set of builders. These will come with reasonable defaults to minimize the boilerplate code. They will also include simple methods for common operations (like adding columns, or a parameter) without requiring the user to create all the sub-objects (like StorageDescriptor).