Its about 300 miles
Sao Paulo to
Rio de Janeiro . You'll will spend at least 8 hours on a bus. There are several flights from GRU to GIG for a little over 100 reais (around 60 usd). It's worth the extra money unless you are wanting to see the countryside and small towns.