No, you don't need to have A,B & C as columns. You can fetch them as part of your rowkeys. Infact, it would be more efficient if the values you need are part of your rowkeys.
Just get the rowkey, convert it to Java String type(Use Bytes.toString()) and split on "_" using String.split().