code: @Override
      public void setLocation(String location, Job job)
              throws IOException {
          // The location is assumed to be comma separated paths.
          FileInputFormat.setInputPaths(job, location);
  
          requiredFieldList = (RequiredFieldList) getFromUDFContext(PRUNE_PROJECTION_INFO);
  
          // If we encounter a PushDown Projection we strip the requestedFields to only the needed ones
          // This pruning will very effectively push the projection down into the actual parser system.
          if (requiredFieldList != null &&
              originalRequestedFields == null) { // Avoid pruning twice !!
              Set<Integer> requestedFieldIndexes = new HashSet<>();
              for (RequiredField requiredField : requiredFieldList.getFields()) {
                  requestedFieldIndexes.add(requiredField.getIndex());
              }
              List<String> prunedRequestedFields = new ArrayList<>(requestedFieldIndexes.size());
              int index = 0;
              for (String field : requestedFields) {
                  if (requestedFieldIndexes.contains(index)) {
                      prunedRequestedFields.add(field);
                  }
                  ++index;
              }
              originalRequestedFields = requestedFields;
              requestedFields = prunedRequestedFields;
          }
      }
docs: ------------------------------------------