Sorry for the slow response.  You should use scipy.sparse as in the rest of MLlib, where we (a) try to import scipy but catch the error if we do not and (b) test _have_scipy in methods and accept scipy types and only return scipy types if given scipy types.  Does that make sense? 