code: private Object getRawValue(String columnName, Map<String, Object> content)
              throws ColumnNotFoundException {
          String field = columnName;
          Object value = content;
  
          while (field != null) {
              // If at any point in the path a null is encountered stop
              if (value == null) {
                  throw new ColumnNotFoundException();
              }
  
              // With the exception of leaf values the intermediate values must always be Maps.
              if (!(value instanceof Map)) {
                  throw new ColumnNotFoundException();
              }
  
              //noinspection unchecked
              Map<String, Object> map = (Map<String, Object>) value;
              String nextField = null;
  
              int separator = field.indexOf('/');
              if (separator != -1) {
                  nextField = field.substring(separator + 1);
                  field = field.substring(0, separator);
              }
  
              // Typically Hive column names are all lower case.  Because of this we can't just look up the key directly;
              // we need to look it up in a case-insensitive fashion.  For efficiency first try it as-is.
  
              boolean found = false;
              if (map.containsKey(field)) {
                  value = map.get(field);
                  found = true;
              } else {
                  // Look for the key case-insensitively
                  for (Iterator<String> iter = map.keySet().iterator(); !found && iter.hasNext(); ) {
                      String key = iter.next();
                      if (key.equalsIgnoreCase(field)) {
                          value = map.get(key);
                          found = true;
                      }
                  }
              }
              if (!found) {
                  throw new ColumnNotFoundException();
              }
  
              field = nextField;
          }
  
          return value;
      }
docs: Returns the raw value for a given Map.  If the value was found is and is null then null is returned.  If no
  value is present then ColumnNotFoundException is thrown.
  @throws ColumnNotFoundException The column was not found in the map