The ColumnProjectors help in deserializing the column values and I need to pass them to the RecordReader. Since the framework instantiates PhoenixInputFormat twice, once during getSplits(in front end) and the next during createRecordReader (in backend), I use PhoenixInputSplit as a vehicle to carry the ColumnProjectors.