public static int getBucketHashCode(Object[] bucketFields, ObjectInspector[] bucketFieldInspectors) { int hashCode = 0; ByteBuffer b = ByteBuffer.allocate(8); // To be used with primitive types for (int i = 0; i < bucketFields.length; i++) { int fieldHash = ObjectInspectorUtils.hashCodeMurmur( bucketFields[i], bucketFieldInspectors[i], b); hashCode = 31 * hashCode + fieldHash; } return hashCode; }
for (int ii = 0; ii < listOI.getListLength(o); ++ii) { r = 31 * r + hashCodeMurmur(listOI.getListElement(o, ii), elemOI, byteBuffer); Map<?, ?> map = mapOI.getMap(o); for (Map.Entry<?,?> entry : map.entrySet()) { r += hashCodeMurmur(entry.getKey(), keyOI, byteBuffer) ^ hashCode(entry.getValue(), valueOI); List<? extends StructField> fields = structOI.getAllStructFieldRefs(); for (StructField field : fields) { r = 31 * r + hashCodeMurmur(structOI.getStructFieldData(o, field), field.getFieldObjectInspector(), byteBuffer); UnionObjectInspector uOI = (UnionObjectInspector)objIns; byte tag = uOI.getTag(o); return hashCodeMurmur(uOI.getField(o), uOI.getObjectInspectors().get(tag), byteBuffer);
public static int getBucketHashCode(Object[] bucketFields, ObjectInspector[] bucketFieldInspectors) { int hashCode = 0; ByteBuffer b = ByteBuffer.allocate(8); // To be used with primitive types for (int i = 0; i < bucketFields.length; i++) { int fieldHash = ObjectInspectorUtils.hashCodeMurmur( bucketFields[i], bucketFieldInspectors[i], b); hashCode = 31 * hashCode + fieldHash; } return hashCode; }
for (int ii = 0; ii < listOI.getListLength(o); ++ii) { r = 31 * r + hashCodeMurmur(listOI.getListElement(o, ii), elemOI, byteBuffer); Map<?, ?> map = mapOI.getMap(o); for (Map.Entry<?,?> entry : map.entrySet()) { r += hashCodeMurmur(entry.getKey(), keyOI, byteBuffer) ^ hashCode(entry.getValue(), valueOI); List<? extends StructField> fields = structOI.getAllStructFieldRefs(); for (StructField field : fields) { r = 31 * r + hashCodeMurmur(structOI.getStructFieldData(o, field), field.getFieldObjectInspector(), byteBuffer); UnionObjectInspector uOI = (UnionObjectInspector)objIns; byte tag = uOI.getTag(o); return hashCodeMurmur(uOI.getField(o), uOI.getObjectInspectors().get(tag), byteBuffer);