Seems a little bit convoluted to use PartitionPruningRDD, given you can launch a job on only the partition subset already. To make this more general, perhaps you can change the parameter to vararg of partitionIds, and use runJob directly?