private List getListObject(ListObjectInspector listObjectInspector, Object listObject) { if (listObjectInspector.getListLength(listObject) < 0) { return null; } List<?> objectList = listObjectInspector.getList(listObject); List<?> list = null; ObjectInspector child = listObjectInspector.getListElementObjectInspector(); switch (child.getCategory()) { case PRIMITIVE: final PrimitiveObjectInspector primitiveObjectInspector = (PrimitiveObjectInspector) child; list = objectList.stream() .map(input -> coercePrimitiveObject(primitiveObjectInspector, input)) .collect(Collectors.toList()); break; default: break; } return list; }
@Override public Object convert(Object input) { if (input == null) { return null; } // Create enough elementConverters // NOTE: we have to have a separate elementConverter for each element, // because the elementConverters can reuse the internal object. // So it's not safe to use the same elementConverter to convert multiple // elements. int size = inputOI.getListLength(input); while (elementConverters.size() < size) { elementConverters.add(getConverter(inputElementOI, outputElementOI)); } // Convert the elements outputOI.resize(output, size); for (int index = 0; index < size; index++) { Object inputElement = inputOI.getListElement(input, index); Object outputElement = elementConverters.get(index).convert( inputElement); outputOI.set(output, index, outputElement); } return output; }
protected EWAHCompressedBitmap wordArrayToBitmap(Object b) { ListObjectInspector lloi = (ListObjectInspector) b1OI; int length = lloi.getListLength(b); ArrayList<LongWritable> bitmapArray = new ArrayList<LongWritable>(); for (int i = 0; i < length; i++) { long l = PrimitiveObjectInspectorUtils.getLong( lloi.getListElement(b, i), (PrimitiveObjectInspector) lloi.getListElementObjectInspector()); bitmapArray.add(new LongWritable(l)); } BitmapObjectInput bitmapObjIn = new BitmapObjectInput(bitmapArray); EWAHCompressedBitmap bitmap = new EWAHCompressedBitmap(); try { bitmap.readExternal(bitmapObjIn); } catch (IOException e) { throw new RuntimeException(e); } return bitmap; }
ListObjectInspector strArrayOI = (ListObjectInspector) argumentOIs[i]; boolean strArrayFirst = true; for (int j = 0; j < strArrayOI.getListLength(strArray); j++) { if (strArrayFirst) { strArrayFirst = false;
@Override public Object evaluate(DeferredObject[] arguments) throws HiveException { assert (arguments.length == 1); Object b = arguments[0].get(); ListObjectInspector lloi = (ListObjectInspector) bitmapOI; int length = lloi.getListLength(b); ArrayList<LongWritable> bitmapArray = new ArrayList<LongWritable>(); for (int i = 0; i < length; i++) { long l = PrimitiveObjectInspectorUtils.getLong( lloi.getListElement(b, i), (PrimitiveObjectInspector) lloi.getListElementObjectInspector()); bitmapArray.add(new LongWritable(l)); } BitmapObjectInput bitmapObjIn = new BitmapObjectInput(bitmapArray); EWAHCompressedBitmap bitmap = new EWAHCompressedBitmap(); try { bitmap.readExternal(bitmapObjIn); } catch (IOException e) { throw new RuntimeException(e); } // Add return true only if bitmap is all zeros. return new BooleanWritable(!bitmap.iterator().hasNext()); }
@Override public Object evaluate(DeferredObject[] arguments) throws HiveException { Object data = arguments[0].get(); if (returnOI.getCategory() == Category.MAP) { result.set(((MapObjectInspector) returnOI).getMapSize(data)); } else if (returnOI.getCategory() == Category.LIST) { result.set(((ListObjectInspector) returnOI).getListLength(data)); } else if (returnOI.getTypeName().equals(serdeConstants.VOID_TYPE_NAME)) { // null result.set(-1); } return result; }
ListObjectInspector strArrayOI = (ListObjectInspector) argumentOIs[i]; boolean strArrayFirst = true; for (int j = 0; j < strArrayOI.getListLength(strArray); j++) { if (strArrayFirst) { strArrayFirst = false;
@Override void write(Object obj) throws IOException { super.write(obj); if (obj != null) { ListObjectInspector insp = (ListObjectInspector) inspector; int len = insp.getListLength(obj); lengths.write(len); if (createBloomFilter) { bloomFilter.addLong(len); } for (int i = 0; i < len; ++i) { childrenWriters[0].write(insp.getListElement(obj, i)); } } }
@Override public Object evaluate(DeferredObject[] arguments) throws HiveException { Object data = arguments[0].get(); if (returnOI.getCategory() == Category.MAP) { result.set(((MapObjectInspector) returnOI).getMapSize(data)); } else if (returnOI.getCategory() == Category.LIST) { result.set(((ListObjectInspector) returnOI).getListLength(data)); } else if (returnOI.getTypeName().equals(serdeConstants.VOID_TYPE_NAME)) { // null result.set(-1); } return result; }
case LIST: ListObjectInspector loi = (ListObjectInspector) oi; int listSize = loi.getListLength(val);
@Override public Object evaluate(DeferredObject[] arguments) throws HiveException { result.set(false); Object array = arguments[ARRAY_IDX].get(); Object value = arguments[VALUE_IDX].get(); int arrayLength = arrayOI.getListLength(array); // Check if array is null or empty or value is null if (value == null || arrayLength <= 0) { return result; } // Compare the value to each element of array until a match is found for (int i=0; i<arrayLength; ++i) { Object listElement = arrayOI.getListElement(array, i); if (listElement != null) { if (ObjectInspectorUtils.compare(value, valueOI, listElement, arrayElementOI) == 0) { result.set(true); break; } } } return result; }
@Override public Object evaluate(DeferredObject[] arguments) throws HiveException { result.set(false); Object array = arguments[ARRAY_IDX].get(); Object value = arguments[VALUE_IDX].get(); int arrayLength = arrayOI.getListLength(array); // Check if array is null or empty or value is null if (value == null || arrayLength <= 0) { return result; } // Compare the value to each element of array until a match is found for (int i=0; i<arrayLength; ++i) { Object listElement = arrayOI.getListElement(array, i); if (listElement != null) { if (ObjectInspectorUtils.compare(value, valueOI, listElement, arrayElementOI) == 0) { result.set(true); break; } } } return result; }
int length = loi.getListLength(o); ArrayList<Object> list = new ArrayList<Object>(length); for (int i = 0; i < length; i++) {
ListObjectInspector listOI = (ListObjectInspector)objIns; ObjectInspector elemOI = listOI.getListElementObjectInspector(); for (int ii = 0; ii < listOI.getListLength(o); ++ii) {
@Override public void write(Object value) { recordConsumer.startGroup(); int listLength = inspector.getListLength(value); if (listLength > 0) { recordConsumer.startField(repeatedGroupName, 0); for (int i = 0; i < listLength; i++) { Object element = inspector.getListElement(value, i); recordConsumer.startGroup(); if (element != null) { recordConsumer.startField(elementName, 0); elementWriter.write(element); recordConsumer.endField(elementName, 0); } recordConsumer.endGroup(); } recordConsumer.endField(repeatedGroupName, 0); } recordConsumer.endGroup(); } }
@Override public void write(Object value) { recordConsumer.startGroup(); int listLength = inspector.getListLength(value); if (listLength > 0) { recordConsumer.startField(repeatedGroupName, 0); for (int i = 0; i < listLength; i++) { Object element = inspector.getListElement(value, i); recordConsumer.startGroup(); if (element != null) { recordConsumer.startField(elementName, 0); elementWriter.write(element); recordConsumer.endField(elementName, 0); } recordConsumer.endGroup(); } recordConsumer.endField(repeatedGroupName, 0); } recordConsumer.endGroup(); } }
int size = loi.getListLength(obj); LazyBinaryUtils.writeVInt(byteStream, size);
ListObjectInspector listOI = (ListObjectInspector)objIns; ObjectInspector elemOI = listOI.getListElementObjectInspector(); for (int ii = 0; ii < listOI.getListLength(o); ++ii) { r = 31 * r + hashCode(listOI.getListElement(o, ii), elemOI);
assertEquals(null, listOI.getListElement(list, -1)); assertEquals(null, listOI.getListElement(list, 13)); assertEquals(13, listOI.getListLength(list));
generator.writeBeginArray(); for (int i = 0; i < loi.getListLength(data); i++) { Result result = write(loi.getListElement(data, i), loi.getListElementObjectInspector(), generator); if (!result.isSuccesful()) {