public static String describe(List<org.apache.iceberg.expressions.Expression> exprs) {
    return exprs.stream().map(Spark3Util::describe).collect(Collectors.joining(", "));
  }
@Test
  public void testDescribeSchema() {
    Schema schema =
        new Schema(
            required(1, "data", Types.ListType.ofRequired(2, Types.StringType.get())),
            optional(
                3,
                "pairs",
                Types.MapType.ofOptional(4, 5, Types.StringType.get(), Types.LongType.get())),
            required(6, "time", Types.TimestampType.withoutZone()));

    assertThat(Spark3Util.describe(schema))
        .as("Schema description isn't correct.")
        .isEqualTo(
            "struct<data: list<string> not null,pairs: map<string, bigint>,time: timestamp not null>");
  }