Do not put partitioner in constructor args. Use setters and make the hashPartitioner default. Also, should separate userPartitioner/numUserBlocks and productPartitioner/numProductBlocks.