TrainValidationSplit differs from CrossValidator mainly by:
Select an answer to reveal the explanation.
Short Explanation
TrainValidationSplit = one split (cheaper); CrossValidator = k-fold (more stable, costlier).
Full Explanation
Cost vs robustness tradeoff in Spark tuning.