I'm also having a difficulties with your sample data.
The variable name in the first row consists of two parts, but in the second row the second part is missing.
Don't you miss something? Does your actual data as inconsistent as you post it?
infile cards missover;
input pid fname :$30. sname :$30. age race :$10.;
101 rakesh kumar 34 asian
102 hari Sname_is_missing 29 african