Rafael Nadal beats Diego Schwartzman to reach US Open semi-finals