https://medium.com/data-engineering-lab/repartition-vs-coalesce-in-pyspark-key-differences-and-performance-implications-b74f83107056