@Override public void write(RecordConsumer rc) { rc.startMessage(); rc.startField("list_of_ints", 0); rc.startGroup(); rc.startField("array", 0); rc.addInteger(34); rc.addInteger(35); rc.addInteger(36); rc.endField("array", 0); rc.endGroup(); rc.endField("list_of_ints", 0); rc.endMessage(); } });
@Override public void write(RecordConsumer rc) { rc.startMessage(); rc.startField("votes", 0); rc.startGroup(); rc.startField("key_value", 0); rc.startGroup(); rc.startField("key", 0); rc.addBinary(Binary.fromString("lettuce")); rc.endField("key", 0); rc.startField("value", 1); rc.addInteger(34); rc.endField("value", 1); rc.endGroup(); rc.startGroup(); rc.startField("key", 0); rc.addBinary(Binary.fromString("cabbage")); rc.endField("key", 0); rc.startField("value", 1); rc.addInteger(18); rc.endField("value", 1); rc.endGroup(); rc.endField("key_value", 0); rc.endGroup(); rc.endField("votes", 0); rc.endMessage(); } });
@Override public void write(Object value) { recordConsumer.addDouble(inspector.get(value)); } }
@Override public void write(Object value) { recordConsumer.startMessage(); if (value != null) { super.write(value); } recordConsumer.endMessage(); } }
@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(RecordConsumer consumer) { for(int i = 0; i < 100; i++) { consumer.startMessage(); consumer.startField("int", 0); consumer.addInteger(i); consumer.endField("int", 0); consumer.endMessage(); } } });
@Override public void write(TupleEntry record) { recordConsumer.startMessage(); final List<Type> fields = rootSchema.getFields(); for (int i = 0; i < fields.size(); i++) { Type field = fields.get(i); if (record == null || record.getObject(field.getName()) == null) { continue; } recordConsumer.startField(field.getName(), i); if (field.isPrimitive()) { writePrimitive(record, field.asPrimitiveType()); } else { throw new UnsupportedOperationException("Complex type not implemented"); } recordConsumer.endField(field.getName(), i); } recordConsumer.endMessage(); }
@Override public void write(RecordConsumer rc) { rc.startMessage(); rc.startField("single_element_groups", 0); rc.startGroup(); rc.startField("single_element_groups_tuple", 0); // start writing array contents rc.startGroup(); rc.startField("count", 0); rc.addLong(1234L); rc.endField("count", 0); rc.endGroup(); rc.startGroup(); rc.startField("count", 0); rc.addLong(2345L); rc.endField("count", 0); rc.endGroup(); rc.endField("single_element_groups_tuple", 0); // finished writing array contents rc.endGroup(); rc.endField("single_element_groups", 0); rc.endMessage(); } });
@Override public void write(RecordConsumer rc) { rc.startMessage(); rc.startField("list_of_points", 0); rc.startGroup(); rc.startField("x", 0); rc.addFloat(1.0f); rc.endField("x", 0); rc.startField("y", 1); rc.addFloat(1.0f); rc.endField("y", 1); rc.endGroup(); rc.startGroup(); rc.startField("x", 0); rc.addFloat(2.0f); rc.endField("x", 0); rc.startField("y", 1); rc.addFloat(2.0f); rc.endField("y", 1); rc.endGroup(); rc.endField("list_of_points", 0); rc.endMessage(); } });
private void writeRecordFields(GroupType schema, Schema avroSchema, Object record) { List<Type> fields = schema.getFields(); List<Schema.Field> avroFields = avroSchema.getFields(); int index = 0; // parquet ignores Avro nulls, so index may differ for (int avroIndex = 0; avroIndex < avroFields.size(); avroIndex++) { Schema.Field avroField = avroFields.get(avroIndex); if (avroField.schema().getType().equals(Schema.Type.NULL)) { continue; } Type fieldType = fields.get(index); Object value = model.getField(record, avroField.name(), avroIndex); if (value != null) { recordConsumer.startField(fieldType.getName(), index); writeValue(fieldType, avroField.schema(), value); recordConsumer.endField(fieldType.getName(), index); } else if (fieldType.isRepetition(Type.Repetition.REQUIRED)) { throw new RuntimeException("Null-value for required field: " + avroField.name()); } index++; } }
@Override public void writeField() throws IOException { consumer.startField(fieldName, fieldId); reader.read(holder); consumer.addLong(holder.value); consumer.endField(fieldName, fieldId); } }
@Override public void writeField() throws IOException { consumer.startField(fieldName, fieldId); reader.read(holder); consumer.addBoolean(holder.value == 1); consumer.endField(fieldName, fieldId); } }
private void startListWrapper() { start(); recordConsumer.startGroup(); if (size > 0) { recordConsumer.startField(listContent.getType().getName(), 0); currentProtocol = contentProtocol; } }
@Override public void writeField() throws IOException { if (!reader.isSet()) { return; } reader.read(holder); consumer.startField(fieldName, fieldId); consumer.addBinary(Binary.fromByteBuffer(holder.buffer.nioBuffer(holder.start, holder.end - holder.start))); consumer.endField(fieldName, fieldId); } }
@Override public void writeField() throws IOException { consumer.startField(fieldName, fieldId); reader.read(holder); consumer.addDouble(holder.value); consumer.endField(fieldName, fieldId); } }
@Override public void writeField() throws IOException { consumer.startField(fieldName, fieldId); reader.read(holder); consumer.addFloat(holder.value); consumer.endField(fieldName, fieldId); } }
@Override public void write(Object value) { String v = inspector.getPrimitiveJavaObject(value); recordConsumer.addBinary(Binary.fromString(v)); } }
@Override public void writeField() throws IOException { consumer.startField(fieldName, fieldId); reader.read(holder); IntervalUtility.intToLEByteArray(holder.months, output, 0); IntervalUtility.intToLEByteArray(holder.days, output, 4); IntervalUtility.intToLEByteArray(holder.milliseconds, output, 8); consumer.addBinary(Binary.fromByteArray(output)); consumer.endField(fieldName, fieldId); } }
@Override public void write(Object value) { recordConsumer.addBoolean(inspector.get(value)); } }