title: Spark ML print model (pipeline)
body: <p>I have dataset which was created from dataframe using VectorAssembler, the dataframe is a transformation of <code>StringIndexer()</code> for multiple columns
  I trained my model :</p>
  
  <pre><code>val assembler = new VectorAssembler().....
  val data = assembler.transform(...)
  val featureIndexer = new VectorIndexer()
  val gbt = new GBTRegressor()
        .setLabelCol("label")
        .setFeaturesCol("indexedFeatures")
        .setMaxIter(10)
  val pipeline = new Pipeline()
        .setStages(Array(featureIndexer, gbt))
  val model = pipeline.fit(trainingData)
  </code></pre>
  
  <p>When I print my model it would look something like:</p>
  
  <pre><code>GBTRegressionModel (uid=gbtr_24b22b08fa90) with 10 trees
    Tree 0 (weight 1.0):
      If (feature 16 &lt;= 0.22222222222222224)
       If (feature 16 &lt;= 0.13333333333333333)
        If (feature 16 &lt;= 0.07142857142857144)
         If (feature 16 &lt;= 0.02222222222222222)....
  </code></pre>
  
  <p>My first problem is that I would expect to see  feature name and not feature index when printing the model, how can I resolve that? 
  Another problem is caused because I used <code>StringIndexer()</code>, which means I would see the mapping of each value as int and not his string value. How can I print the model with the StringType column instead of the one was transformed with <code>StringIndexer()</code>?</p>
  
  <p>Thanks for helpers</p>