public Map<String, String> eval(String... input) {
        if (input == null || input.length == 0) {
            throw new IllegalArgumentException("Input may not be null or empty.");
        }
        ParsedArguments parsedArguments = parseArguments(input, Collections.emptyList(), allAllowedHeaders);

        return userAgentAnalyzer.parse(parsedArguments.getRequestHeaders()).toMap(extractedFields);
    }
Create a UserAgentAnalyzer that extracts only the specified fields
@param cacheSize The desired size of the cache.
@param desiredFields The list of desired field names.
udfs/flink-table/src/main/java/nl/basjes/parse/useragent/flink/table/AnalyzeUseragentFunction.java