code: def calculate_sparkml_string_indexer_output_shapes(operator):
      '''
      This function just copy the input shape to the output because label encoder only alters input features' values, not
      their shape.
      '''
      check_input_and_output_numbers(operator, output_count_range=1)
      check_input_and_output_types(operator, good_input_types=[Int64TensorType, StringTensorType])
  
      input_shape = copy.deepcopy(operator.inputs[0].type.shape)
      operator.outputs[0].type = Int64TensorType(input_shapef calculate_sparkml_string_indexer_output_shapes(operator):
      '''
      This function just copy the input shape to the output because label encoder only alters input features' values, not
      their shape.
      '''
      check_input_and_output_numbers(operator, output_count_range=1)
      check_input_and_output_types(operator, good_input_types=[Int64TensorType, StringTensorType])
  
      input_shape = copy.deepcopy(operator.inputs[0].type.shape)
      operator.outputs[0].type = Int64TensorType(input_shape)
docs: This function just copy the input shape to the output because label encoder only alters input features' values, not
      their shape.