code: function (uid) {
          this.logger = Logger.getLogger("ml.feature.StringIndexer_js");
          var jvmObject;
          if (uid) {
              if (uid instanceof org.apache.spark.ml.feature.StringIndexer) {
                  jvmObject = uid;
              } else {
                  jvmObject = new org.apache.spark.ml.feature.StringIndexer(uid);
              }
          } else {
              jvmObject = new org.apache.spark.ml.feature.StringIndexer();
          }
  
          PipelineStage.call(this, jvmObject);
  
      }
docs: @classdesc
  A label indexer that maps a string column of labels to an ML column of label indices.
  If the input column is numeric, we cast it to string and index the string values.
  The indices are in [0, numLabels), ordered by label frequencies.
  So the most frequent label gets index 0.
  
  @see {@link module:eclairjs/ml/feature.IndexToString} for the inverse transformation
  @class
  @extends module:eclairjs/ml.PipelineStage
  @memberof module:eclairjs/ml/feature
  @param {string} [uid]