VectorIndexer has the following purpose as I understand it:
In VectorUDT typed columns it converts the values it deems categorical to numerical mappings
However, It operates only on VectorUDT types and these are necessarily already built of Numerical types. We convert categorical features to Numerical features since many ml algorithms do not work with non-numerical types. What is the point of mapping Numerical values to Numerical values which is what the VectorIndexer seems to be useful for?