sb.append(((ByteObjectInspector) poi).get(o)); break; sb.append(((IntObjectInspector) poi).get(o)); break; sb.append(((LongObjectInspector) poi).get(o)); break; sb.append(((FloatObjectInspector) poi).get(o)); break; sb.append('"'); sb.append(escapeString(((HiveVarcharObjectInspector) poi) .getPrimitiveJavaObject(o).toString())); sb.append('"'); break; BytesWritable bw = ((BinaryObjectInspector) oi).getPrimitiveWritableObject(o); Text txt = new Text(); txt.set(bw.getBytes(), 0, bw.getLength()); + poi.getPrimitiveCategory());
boolean[] needsEscape) throws IOException { LazyInteger.writeUTF8(out, ((ByteObjectInspector) oi).get(o)); break; LazyInteger.writeUTF8(out, ((IntObjectInspector) oi).get(o)); break; LazyLong.writeUTF8(out, ((LongObjectInspector) oi).get(o)); break; float f = ((FloatObjectInspector) oi).get(o); ByteBuffer b = Text.encode(String.valueOf(f)); out.write(b.array(), 0, b.limit()); HiveCharWritable hc = ((HiveCharObjectInspector) oi).getPrimitiveWritableObject(o); Text t = hc.getPaddedValue(); writeEscaped(out, t.getBytes(), 0, t.getLength(), escaped, escapeChar, HiveVarcharWritable hc = ((HiveVarcharObjectInspector)oi).getPrimitiveWritableObject(o); Text t = hc.getTextValue(); writeEscaped(out, t.getBytes(), 0, t.getLength(), escaped, escapeChar, BytesWritable bw = ((BinaryObjectInspector) oi).getPrimitiveWritableObject(o); byte[] toEncode = new byte[bw.getLength()]; System.arraycopy(bw.getBytes(), 0,toEncode, 0, bw.getLength());
return constantValue == null ? 0 : constantValue.toString().length(); } else if (oi instanceof HiveVarcharObjectInspector) { VarcharTypeInfo type = (VarcharTypeInfo) ((HiveVarcharObjectInspector) oi).getTypeInfo(); return type.getLength(); return constantValue == null ? 0 : constantValue.toString().length(); } else if (oi instanceof HiveCharObjectInspector) { CharTypeInfo type = (CharTypeInfo) ((HiveCharObjectInspector) oi).getTypeInfo(); return type.getLength();
return t; case STRING: if (inputOI.preferWritable()) { t.set(((StringObjectInspector) inputOI).getPrimitiveWritableObject(input)); } else { case CHAR: if (inputOI.preferWritable()) { t.set(((HiveCharObjectInspector) inputOI).getPrimitiveWritableObject(input) .getStrippedValue()); } else { t.set(((HiveCharObjectInspector) inputOI).getPrimitiveJavaObject(input).getStrippedValue()); t.set(((HiveVarcharObjectInspector) inputOI).getPrimitiveWritableObject(input) .toString()); } else { t.set(((HiveVarcharObjectInspector) inputOI).getPrimitiveJavaObject(input).toString()); case BINARY: BinaryObjectInspector binaryOI = (BinaryObjectInspector) inputOI; if (binaryOI.preferWritable()) { BytesWritable bytes = binaryOI.getPrimitiveWritableObject(input); t.set(bytes.getBytes(), 0, bytes.getLength()); } else { t.set(binaryOI.getPrimitiveJavaObject(input));
int v1 = ((ByteObjectInspector) poi1).get(o1); int v2 = ((ByteObjectInspector) poi2).get(o2); return v1 - v2; int v1 = ((IntObjectInspector) poi1).get(o1); int v2 = ((IntObjectInspector) poi2).get(o2); return v1 > v2 ? 1 : (v1 < v2 ? -1 : 0); long v1 = ((LongObjectInspector) poi1).get(o1); long v2 = ((LongObjectInspector) poi2).get(o2); return v1 > v2 ? 1 : (v1 < v2 ? -1 : 0); float v1 = ((FloatObjectInspector) poi1).get(o1); float v2 = ((FloatObjectInspector) poi2).get(o2); HiveCharWritable t1 = ((HiveCharObjectInspector)poi1).getPrimitiveWritableObject(o1); HiveCharWritable t2 = ((HiveCharObjectInspector)poi2).getPrimitiveWritableObject(o2); return t1.compareTo(t2); HiveVarcharWritable t1 = ((HiveVarcharObjectInspector)poi1).getPrimitiveWritableObject(o1); HiveVarcharWritable t2 = ((HiveVarcharObjectInspector)poi2).getPrimitiveWritableObject(o2); return t1.compareTo(t2); BytesWritable bw1 = ((BinaryObjectInspector) poi1).getPrimitiveWritableObject(o1); BytesWritable bw2 = ((BinaryObjectInspector) poi2).getPrimitiveWritableObject(o2); return bw1.compareTo(bw2);
return null; } else if (inspector instanceof HiveVarcharObjectInspector) { if (((HiveVarcharObjectInspector) inspector).preferWritable()) { return ((HiveVarcharObjectInspector) inspector).getPrimitiveWritableObject(hiveObj) .getHiveVarchar().getValue(); } else { return ((HiveVarcharObjectInspector) inspector).getPrimitiveJavaObject(hiveObj) .getValue(); if (((HiveCharObjectInspector) inspector).preferWritable()) { return ((HiveCharObjectInspector) inspector).getPrimitiveWritableObject(hiveObj) .getHiveChar().getValue(); } else { return ((HiveCharObjectInspector) inspector).getPrimitiveJavaObject(hiveObj) .getValue(); if (((BinaryObjectInspector) inspector).preferWritable()) { return ((BinaryObjectInspector) inspector).getPrimitiveWritableObject(hiveObj).getBytes(); } else { return ((BinaryObjectInspector) inspector).getPrimitiveJavaObject(hiveObj); return ((PrimitiveObjectInspector) inspector).getPrimitiveJavaObject(hiveObj); } else if (inspector instanceof StructObjectInspector) {
case PRIMITIVE: PrimitiveObjectInspector poi = (PrimitiveObjectInspector) oi; switch (poi.getPrimitiveCategory()) { byte b = 0; if (objectForField != null) { b = boi.get(objectForField); int i = 0; if (objectForField != null) { i = ioi.get(objectForField); long l = 0; if (objectForField != null) { l = loi.get(objectForField); HiveVarcharWritable hv = hvoi.getPrimitiveWritableObject(objectForField); HiveCharWritable hc = coi.getPrimitiveWritableObject(objectForField); BytesWritable byw = bnoi.getPrimitiveWritableObject(objectForField); out.writeVarByte(byw); return; default: throw new SerDeException("Unrecognized type: " + poi.getPrimitiveCategory());
public static BytesWritable getBinary(Object o, PrimitiveObjectInspector oi) { if (null == o) { return null; } switch (oi.getPrimitiveCategory()) { case VOID: return null; case STRING: Text text = ((StringObjectInspector) oi).getPrimitiveWritableObject(o); return getBinaryFromText(text); case CHAR: // char to binary conversion: include trailing spaces? return getBinaryFromText( ((HiveCharObjectInspector) oi).getPrimitiveWritableObject(o).getPaddedValue()); case VARCHAR: return getBinaryFromText( ((HiveVarcharObjectInspector) oi).getPrimitiveWritableObject(o).getTextValue()); case BINARY: return ((BinaryObjectInspector) oi).getPrimitiveWritableObject(o); default: throw new RuntimeException("Cannot convert to Binary from: " + oi.getTypeName()); } }
public static HiveVarchar getHiveVarchar(Object o, PrimitiveObjectInspector oi) { if (o == null) { return null; } HiveVarchar result = null; switch (oi.getPrimitiveCategory()) { case VARCHAR: result = ((HiveVarcharObjectInspector)oi).getPrimitiveJavaObject(o); break; default: // Is there a way to provide char length here? // It might actually be ok as long as there is an object inspector (with char length) // receiving this value. result = new HiveVarchar(); result.setValue(getString(o, oi)); break; } return result; }
switch(primitiveObjectInspector.getPrimitiveCategory()) { case DECIMAL: DecimalTypeInfo decimalTypeInfo = (DecimalTypeInfo) primitiveObjectInspector.getTypeInfo(); HiveDecimalObjectInspector decimalOI = (HiveDecimalObjectInspector) primitiveObjectInspector; BigDecimal bigDecimal = decimalOI.getPrimitiveJavaObject(field).bigDecimalValue(); return days; case CHAR: HiveChar c = ((HiveCharObjectInspector) primitiveObjectInspector).getPrimitiveJavaObject(field); return c.getStrippedValue(); case VARCHAR: HiveVarchar vc = ((HiveVarcharObjectInspector) primitiveObjectInspector).getPrimitiveJavaObject(field); return vc.getValue(); default: return primitiveObjectInspector.getPrimitiveJavaObject(field);
@Override public void write(Object value) { String v = inspector.getPrimitiveJavaObject(value).getValue(); recordConsumer.addBinary(Binary.fromString(v)); } }
/** * Override base class implementation to support varchar values. */ @Override Text getTextValue(Object obj) { return (((HiveVarcharObjectInspector) inspector) .getPrimitiveWritableObject(obj)).getTextValue(); } }
@SuppressWarnings("deprecation") @Override public void set(ValueOption<?> target, Object value) { if (value == null) { target.setNull(); } else if (primitive) { HiveBaseChar entity = inspector.getPrimitiveJavaObject(value); ((StringOption) target).modify(entity.getValue()); } else { HiveBaseCharWritable writable = inspector.getPrimitiveWritableObject(value); ((StringOption) target).modify(writable.getTextValue()); } } }
/** * Creates a new instance. * @param inspector the object inspector */ public VarcharStringOptionDriver(HiveVarcharObjectInspector inspector) { this.inspector = inspector; this.primitive = inspector.preferWritable() == false; }
return t; case STRING: if (inputOI.preferWritable()) { t.set(((StringObjectInspector) inputOI).getPrimitiveWritableObject(input)); } else { case CHAR: if (inputOI.preferWritable()) { t.set(((HiveCharObjectInspector) inputOI).getPrimitiveWritableObject(input) .getStrippedValue()); } else { t.set(((HiveCharObjectInspector) inputOI).getPrimitiveJavaObject(input).getStrippedValue()); t.set(((HiveVarcharObjectInspector) inputOI).getPrimitiveWritableObject(input) .toString()); } else { t.set(((HiveVarcharObjectInspector) inputOI).getPrimitiveJavaObject(input).toString()); case BINARY: BinaryObjectInspector binaryOI = (BinaryObjectInspector) inputOI; if (binaryOI.preferWritable()) { BytesWritable bytes = binaryOI.getPrimitiveWritableObject(input); t.set(bytes.getBytes(), 0, bytes.getLength()); } else { t.set(binaryOI.getPrimitiveJavaObject(input));
int v1 = ((ByteObjectInspector) poi1).get(o1); int v2 = ((ByteObjectInspector) poi2).get(o2); return v1 - v2; int v1 = ((IntObjectInspector) poi1).get(o1); int v2 = ((IntObjectInspector) poi2).get(o2); return v1 > v2 ? 1 : (v1 < v2 ? -1 : 0); long v1 = ((LongObjectInspector) poi1).get(o1); long v2 = ((LongObjectInspector) poi2).get(o2); return v1 > v2 ? 1 : (v1 < v2 ? -1 : 0); float v1 = ((FloatObjectInspector) poi1).get(o1); float v2 = ((FloatObjectInspector) poi2).get(o2); return Float.compare(v1, v2); HiveCharWritable t1 = ((HiveCharObjectInspector)poi1).getPrimitiveWritableObject(o1); HiveCharWritable t2 = ((HiveCharObjectInspector)poi2).getPrimitiveWritableObject(o2); return t1.compareTo(t2); HiveVarcharWritable t1 = ((HiveVarcharObjectInspector)poi1).getPrimitiveWritableObject(o1); HiveVarcharWritable t2 = ((HiveVarcharObjectInspector)poi2).getPrimitiveWritableObject(o2); return t1.compareTo(t2); BytesWritable bw1 = ((BinaryObjectInspector) poi1).getPrimitiveWritableObject(o1); BytesWritable bw2 = ((BinaryObjectInspector) poi2).getPrimitiveWritableObject(o2); return bw1.compareTo(bw2);
public static BytesWritable getBinary(Object o, PrimitiveObjectInspector oi) { if (null == o) { return null; } switch (oi.getPrimitiveCategory()) { case VOID: return null; case STRING: Text text = ((StringObjectInspector) oi).getPrimitiveWritableObject(o); return getBinaryFromText(text); case CHAR: // char to binary conversion: include trailing spaces? return getBinaryFromText( ((HiveCharObjectInspector) oi).getPrimitiveWritableObject(o).getPaddedValue()); case VARCHAR: return getBinaryFromText( ((HiveVarcharObjectInspector) oi).getPrimitiveWritableObject(o).getTextValue()); case BINARY: return ((BinaryObjectInspector) oi).getPrimitiveWritableObject(o); default: throw new RuntimeException("Cannot convert to Binary from: " + oi.getTypeName()); } }
public static HiveVarchar getHiveVarchar(Object o, PrimitiveObjectInspector oi) { if (o == null) { return null; } HiveVarchar result = null; switch (oi.getPrimitiveCategory()) { case VARCHAR: result = ((HiveVarcharObjectInspector)oi).getPrimitiveJavaObject(o); break; default: // Is there a way to provide char length here? // It might actually be ok as long as there is an object inspector (with char length) // receiving this value. result = new HiveVarchar(); result.setValue(getString(o, oi)); break; } return result; }
@Override public void write(Object value) { String v = inspector.getPrimitiveJavaObject(value).getValue(); recordConsumer.addBinary(Binary.fromString(v)); } }
@Override void serialize(RandomAccessOutput byteStream, Object obj, ObjectInspector objInspector, boolean skipLengthPrefix, BooleanRef warnedOnceNullMapKey) { HiveVarcharObjectInspector hcoi = (HiveVarcharObjectInspector) objInspector; Text t = hcoi.getPrimitiveWritableObject(obj).getTextValue(); serializeText(byteStream, t, skipLengthPrefix); } }