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; }
@Override public Object evaluate(DeferredObject[] arguments) throws HiveException { assert (arguments.length == 2); Object index = arguments[1].get(); Object indexObject = converter.convert(index); if (indexObject == null) { return null; } if (mapOI != null) { return mapOI.getMapValueElement(arguments[0].get(), indexObject); } return listOI.getListElement(arguments[0].get(), ((IntWritable)indexObject).get()); }
@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 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; }
for (int eid = 0; eid < size; eid++) { if (null != loi.getListElement(obj, eid)) { nullByte |= 1 << (eid % 8); byteStream, loi.getListElement(obj, eid), eoi, false, warnedOnceNullMapKey);
@Override public Object evaluate(DeferredObject[] arguments) throws HiveException { assert (arguments.length == 2); Object index = arguments[1].get(); Object indexObject = converter.convert(index); if (indexObject == null) { return null; } if (mapOI != null) { return mapOI.getMapValueElement(arguments[0].get(), indexObject); } return listOI.getListElement(arguments[0].get(), ((IntWritable)indexObject).get()); }
ObjectInspector listElementOI = loi.getListElementObjectInspector(); for (int idx = 0; idx < listSize; ++idx) { convertedList.add(convertValue(loi.getListElement(val, idx), listElementOI));
sb.append(separator); sb.append(strArrayOI.getListElement(strArray, j));
ArrayList<Object> list = new ArrayList<Object>(length); for (int i = 0; i < length; i++) { list.add(copyToStandardObject(loi.getListElement(o, i), loi .getListElementObjectInspector(), objectInspectorOption));
sb.append(separator); sb.append(strArrayOI.getListElement(strArray, j));
for (int ii = 0; ii < listOI.getListLength(o); ++ii) { r = 31 * r + hashCodeMurmur(listOI.getListElement(o, ii), elemOI, byteBuffer);
@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)); } } }
setColumn(offset + c, vector.child, oi.getListElementObjectInspector(), oi.getListElement(obj, c));
@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; }
ObjectInspector elemOI = listOI.getListElementObjectInspector(); for (int ii = 0; ii < listOI.getListLength(o); ++ii) { r = 31 * r + hashCode(listOI.getListElement(o, ii), elemOI);
@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; }
Result result = write(loi.getListElement(data, i), loi.getListElementObjectInspector(), generator); if (!result.isSuccesful()) { return result;
@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(); } }
inspector.getAllStructFieldRefs().get(12).getFieldObjectInspector(); assertEquals(ObjectInspector.Category.LIST, listOI.getCategory()); assertEquals(10, listOI.getListElement(list, 10)); assertEquals(null, listOI.getListElement(list, -1)); assertEquals(null, listOI.getListElement(list, 13)); assertEquals(13, listOI.getListLength(list));