public static <T> Inner<T> fields(String... fields) {
    return fields(FieldAccessDescriptor.withFieldNames(fields));
  }
@Test
  @Category(NeedsRunner.class)
  public void testDropNestedArrayField() {
    Schema expectedSchema = Schema.builder().addArrayField("field2", FieldType.STRING).build();

    PCollection<Row> result =
        pipeline
            .apply(
                Create.of(
                        nestedArray(simpleRow(1, "one1"), simpleRow(1, "one2")),
                        nestedArray(simpleRow(2, "two1"), simpleRow(2, "two2")),
                        nestedArray(simpleRow(3, "three1"), simpleRow(3, "three2")))
                    .withRowSchema(NESTED_ARRAY_SCHEMA))
            .apply(DropFields.fields("array[].field1"));
    assertEquals(expectedSchema, result.getSchema());

    List<Row> expectedRows =
        Lists.newArrayList(
            Row.withSchema(expectedSchema).addArray("one1", "one2").build(),
            Row.withSchema(expectedSchema).addArray("two1", "two2").build(),
            Row.withSchema(expectedSchema).addArray("three1", "three2").build());
    PAssert.that(result).containsInAnyOrder(expectedRows);
    pipeline.run();
  }