From the mailing list:
Another problem I ran into that you also might is that --packages doesn't
work with --deploy-mode cluster. It downloads the packages to a temporary
location on the node running spark-submit, then passes those paths to the
node that is running the Driver, but since that isn't the same machine, it
can't find anything and fails. The driver process should be the one
doing the downloading, but it isn't. I ended up having to create a fat JAR
with all of the dependencies to get around that one.
The problem is that we currently don't upload jars to the cluster. It seems to fix this we either (1) do upload jars, or (2) just run the packages code on the driver side. I slightly prefer (2) because it's simpler.