[SPARK-3073] [PySpark] use external sort in sortBy() and sortByKey()

Using external sort to support sort large datasets in reduce stage.
Have you tested that this actually spills any data? I guess it does because the bare Python interpreter already consumes more than 1 MB?