public void addValue(int rowId, int column, SpecializedGetters data, ColumnVector output) { if (data.isNullAt(column)) { output.noNulls = false; output.isNull[rowId] = true; } else { output.isNull[rowId] = false; ((LongColumnVector) output).vector[rowId] = data.getBoolean(column) ? 1 : 0; } } }
private static void printRow(SpecializedGetters row, int ord, TypeDescription schema) { switch (schema.getCategory()) { case BOOLEAN: System.out.print(row.getBoolean(ord)); break; case BYTE: System.out.print(row.getByte(ord)); break; case SHORT: System.out.print(row.getShort(ord)); break; case INT: System.out.print(row.getInt(ord)); break; case LONG: System.out.print(row.getLong(ord)); break; case FLOAT: System.out.print(row.getFloat(ord)); break; case DOUBLE: System.out.print(row.getDouble(ord)); break; case CHAR: case VARCHAR: case STRING: System.out.print("\"" + row.getUTF8String(ord) + "\""); break; case BINARY: { byte[] bin = row.getBinary(ord);
private static Object getValue(SpecializedGetters container, int ord, Type type) { if (container.isNullAt(ord)) { return null; return container.getBoolean(ord); case INTEGER: return container.getInt(ord); case LONG: return container.getLong(ord); case FLOAT: return container.getFloat(ord); case DOUBLE: return container.getDouble(ord); case STRING: return container.getUTF8String(ord).toString(); case BINARY: case FIXED: case UUID: return container.getBinary(ord); case DATE: return new DateWritable(container.getInt(ord)).get(); case TIMESTAMP: return DateTimeUtils.toJavaTimestamp(container.getLong(ord)); case DECIMAL: { Types.DecimalType dt = (Types.DecimalType) type; return container.getDecimal(ord, dt.precision(), dt.scale()).toJavaBigDecimal(); InternalRow internalRow = container.getStruct(ord, struct.fields().size()); Object[] data = new Object[struct.fields().size()];
public void addValue(int rowId, int column, SpecializedGetters data, ColumnVector output) { if (data.isNullAt(column)) { output.noNulls = false; output.isNull[rowId] = true; } else { output.isNull[rowId] = false; ((DecimalColumnVector) output).vector[rowId].setFromLongAndScale( data.getDecimal(column, precision, scale).toUnscaledLong(), scale); } } }
public void addValue(int rowId, int column, SpecializedGetters data, ColumnVector output) { if (data.isNullAt(column)) { output.noNulls = false; output.isNull[rowId] = true; } else { output.isNull[rowId] = false; // getBinary always makes a copy, so we don't need to worry about it // being changed behind our back. byte[] value = data.getBinary(column); ((BytesColumnVector) output).setRef(rowId, value, 0, value.length); } } }
public void addValue(int rowId, int column, SpecializedGetters data, ColumnVector output) { if (data.isNullAt(column)) { output.noNulls = false; output.isNull[rowId] = true; } else { output.isNull[rowId] = false; InternalRow value = data.getStruct(column, children.length); StructColumnVector cv = (StructColumnVector) output; for(int c=0; c < children.length; ++c) { children[c].addValue(rowId, c, value, cv.fields[c]); } } } }
public void addValue(int rowId, int column, SpecializedGetters data, ColumnVector output) { if (data.isNullAt(column)) { output.noNulls = false; output.isNull[rowId] = true; } else { output.isNull[rowId] = false; byte[] value = data.getUTF8String(column).getBytes(); ((BytesColumnVector) output).setRef(rowId, value, 0, value.length); } } }
public void addValue(int rowId, int column, SpecializedGetters data, ColumnVector output) { if (data.isNullAt(column)) { output.noNulls = false; output.isNull[rowId] = true; } else { output.isNull[rowId] = false; ArrayData value = data.getArray(column); ListColumnVector cv = (ListColumnVector) output; // record the length and start of the list elements cv.lengths[rowId] = value.numElements(); cv.offsets[rowId] = cv.childCount; cv.childCount += cv.lengths[rowId]; // make sure the child is big enough cv.child.ensureSize(cv.childCount, true); // Add each element for(int e=0; e < cv.lengths[rowId]; ++e) { children.addValue((int) (e + cv.offsets[rowId]), e, value, cv.child); } } } }
public void addValue(int rowId, int column, SpecializedGetters data, ColumnVector output) { if (data.isNullAt(column)) { output.noNulls = false; output.isNull[rowId] = true; } else { output.isNull[rowId] = false; MapData map = data.getMap(column); ArrayData key = map.keyArray(); ArrayData value = map.valueArray(); MapColumnVector cv = (MapColumnVector) output; // record the length and start of the list elements cv.lengths[rowId] = value.numElements(); cv.offsets[rowId] = cv.childCount; cv.childCount += cv.lengths[rowId]; // make sure the child is big enough cv.keys.ensureSize(cv.childCount, true); cv.values.ensureSize(cv.childCount, true); // Add each element for(int e=0; e < cv.lengths[rowId]; ++e) { int pos = (int)(e + cv.offsets[rowId]); keyConverter.addValue(pos, e, key, cv.keys); valueConverter.addValue(pos, e, value, cv.values); } } } }
public void addValue(int rowId, int column, SpecializedGetters data, ColumnVector output) { if (data.isNullAt(column)) { output.noNulls = false; output.isNull[rowId] = true; } else { output.isNull[rowId] = false; ((DecimalColumnVector) output).vector[rowId].set( HiveDecimal.create(data.getDecimal(column, precision, scale) .toJavaBigDecimal())); } } }