High level comment: you may want to look at the MapBasedInputRow/InputRow abstraction versus using straight up hash maps