To process an X GB file, we need X GB to split the file.
To sort a Yz GB intermediate file (each column takes up a different amount of space), we need Y GB. We perform several sorts at once.
So, in total we need X + N*Yz GB, where N is the number of subprocesses doing the sorting.