Rodriguez sparkles again, Giants beat Pirates 4-3