docs: public static StructType fromSchemaSequence(Schema schema) {
          StructField[] structFields = new StructField[schema.numColumns() + 2];
  
          structFields[0] = new StructField(SEQUENCE_UUID_COLUMN, DataTypes.StringType, false, Metadata.empty());
          structFields[1] = new StructField(SEQUENCE_INDEX_COLUMN, DataTypes.IntegerType, false, Metadata.empty());
  
          for (int i = 0; i < schema.numColumns(); i++) {
              switch (schema.getColumnTypes().get(i)) {
                  case Double:
                      structFields[i + 2] =
                                      new StructField(schema.getName(i), DataTypes.DoubleType, false, Metadata.empty());
                      break;
                  case Integer:
                      structFields[i + 2] =
                                      new StructField(schema.getName(i), DataTypes.IntegerType, false, Metadata.empty());
                      break;
                  case Long:
                      structFields[i + 2] =
                                      new StructField(schema.getName(i), DataTypes.LongType, false, Metadata.empty());
                      break;
                  case Float:
                      structFields[i + 2] =
                                      new StructField(schema.getName(i), DataTypes.FloatType, false, Metadata.empty());
                      break;
                  default:
                      throw new IllegalStateException(
                                      "This api should not be used with strings , binary data or ndarrays. This is only for columnar data");
              }
          }
          return new StructType(structFields);
      }