A slightly confusing point is that the driver is in the same memory space as the shell, and we're really just controlling the memory of the shell process itself. I think the wording "the memory used by the spark shell and driver" may be slightly clearer in this sense.