@Override
  public Object getListElement(final Object data, final int index) {
    if (data == null) {
      return null;
    }

    if (data instanceof ArrayWritable) {
      final Writable[] array = ((ArrayWritable) data).get();
      if (array == null || array.length == 0) {
        return null;
      }

      if (index >= 0 && index < array.length) {
        return array[index];
      } else {
        return null;
      }
    }

    if (data instanceof List) {
      return ((List<?>)data).get(index);
    }

    throw new UnsupportedOperationException("Cannot inspect " + data.getClass().getCanonicalName());
  }
The ParquetHiveArrayInspector will inspect an ArrayWritable, considering it as an Hive array.<br>
It can also inspect a List if Hive decides to inspect the result of an inspection.
ql/src/java/org/apache/hadoop/hive/ql/io/parquet/serde/ParquetHiveArrayInspector.java