Distributed _thin_ QR.
Distributed _thin_ QR. A'A must fit in a memory, i.e. if A is m x n, then n should be pretty controlled (<5000 or so). <P>
It is recommended to checkpoint A since it does two passes over it. <P>
It also guarantees that Q is partitioned exactly the same way (and in same key-order) as A, so their RDD should be able to zip successfully.