The Cascalog abstraction layer fixes this issue by separating logic from data, allowing you to play creatively at massive scale.
I just checked out Casacalog and I like what I see, although I have yet to try it out myself. Does anyone know of something similar that would work with Scala as well?