private static <T> T visitField(
      StructField sField, Type field, AdaptHiveParquetWithSparkSchemaVisitor<T> visitor) {
    visitor.fieldNames.push(field.getName());
    try {
      return visit(sField.dataType(), field, visitor);
    } finally {
      visitor.fieldNames.pop();
    }
  }
Copy from iceberg {@link ParquetWithSparkSchemaVisitor} to change some code, see annotation
"Change for mixed-format table"
amoro-format-mixed/amoro-mixed-spark/v3.2/amoro-mixed-spark-3.2/src/main/java/org/apache/iceberg/spark/data/AdaptHiveParquetWithSparkSchemaVisitor.java