Why am I getting the same value for the accuracy and recall when using spark's mllib's MulticlassClassificationEvaluator?
It's correct. You can see comments to this effect in the docs/source. In a multiclass setting, overall precision and recall are the same. 

Precision and recall in the "binary" classification case is really reporting precision with respect to one of the two classes: the positive one. There are in fact two classes, but we tend to think of it as class vs not-class.

However in multiclass, there is no positive and negative. All N classes are equal, and precision and recall are computed over all N classes, not N-1. This ends up making their definition the same.

To see it, consider the confusion matrix of a multiclass classifier, with predicted class down the rows and actual classes across the columns. "True positives" are equivalent to all the diagonal entries: these are the cases where predicated and actual classes match. "False positives" occur when the predicted class is wrong: these are all the entries in each row that aren't on the diagonal. "False negatives" occur when the actual class isn't the predicted one: these are all the entries in each column that aren't on the diagonal.

But the sum of rows (less the diagonal) is the same as the sum of columns (less the diagonal). So the false positive and false negative count are the same. And from the definition of precision and recall, this makes their values the same. 

In fact, both equal the accuracy of the multiclass classifier.