The spark charm always includes the spark-worker role and also includes spark-master on the leader unit. This is not valid when spark is in yarn-* mode. There is no need for master/worker processes to be running when spark is in yarn mode.
The zeppelin charm needs spark-datanucleus because the included spark bits are tightly coupled to hive. We manually apt install this package, but we should be using an appropriate role to leverage bigtop puppet just like we do for the spark charm. This only affects deployments without a separate spark unit, but that is a valid use case and we should have a nice UX for people that only deploy zeppelin.