Nice work. In addition, I would like to two suggestions. (1) SerializeDeserialize is verb, and I think it is only verb in many member variables. How about changing the name to SerializeDeserialize*r*. (2) In addition, if we support custom (de) serializer, CSVFile is not a proper name anymore. We need to rename the format name and its properties, such csvfile.delimiter and csvfile.serde. Probably, it is right time to rename them because Tajo is under the relatively early stage. It would be good to create a separate jira issue for it.
Anyway, I agreed this patch.