class_docstr: _NamedtupleCache makes sure the same instance of a namedtuple is returned for a given schema and a set of
  fields. This makes comparison between types possible. For example, `tf.data.Dataset.concatenate` implementation
  compares types to make sure two datasets can be concatenated.
docstr: Creates a nametuple with field_names as values. Returns an existing instance if was already created.
  
  :param parent_schema_name: Schema name becomes is part of the cache key
  :param field_names: defines names of the fields in the namedtuple created/returned. Also part of the cache key.
  :return: A namedtuple with field names defined by `field_names`
docstr_tok: ["Creates","a","nametuple","with","field_names","as","values",".","Returns","an","existing","instance","if","was","already","created",".",":","param","parent_schema_name",":","Schema","name","becomes","is","part","of","the","cache","key",":","param","field_names",":","defines","names","of","the","fields","in","the","namedtuple","created\/returned",".","Also","part","of","the","cache","key",".",":","return",":","A","namedtuple","with","field","names","defined","by","`","field_names","`"]
code: def get(parent_schema_name, field_names):
      """Creates a nametuple with field_names as values. Returns an existing instance if was already created.
  
      :param parent_schema_name: Schema name becomes is part of the cache key
      :param field_names: defines names of the fields in the namedtuple created/returned. Also part of the cache key.
      :return: A namedtuple with field names defined by `field_names`
      """
      # Cache key is a combination of schema name and all field names
      if _UNISCHEMA_FIELD_ORDER.lower() == "alphabetical":
          field_names = list(sorted(field_names))
      else:
          field_names = list(field_names)
      key = " ".join([parent_schema_name] + field_names)
      if key not in _NamedtupleCache._store:
          _NamedtupleCache._store[
              key
          ] = _new_gt_255_compatible_namedtuple(
              "{}_view".format(parent_schema_name), field_names
          )
      return _NamedtupleCache._store[key]
  
imports: import copy
  import re
  import sys
  import warnings
  from collections import namedtuple, OrderedDict
  from decimal import Decimal
  from typing import Dict, Any, Tuple, Optional, NamedTuple
  import numpy
  import pyarrow
  import six
  from pyarrow.lib import ListType
  from pyarrow.lib import StructType
  from six import string_types
label_desc: Use image node_id 1 for calling the _NamedtupleCache obj's underlying member method code with example usage: obj.get(parent_schema_name, field_names) and returns: _NamedtupleCache