If you have the RDDs supplied, you shouldn't need to collect the Spark context anyways.

If you want to support multiple join implementations, perhaps the join signature should be refactored as a trait?