for (int i = 0; i < array.size(); i++) { final Schema elementSchema = avroSchema.getElementType(); valueArray[i] = normalizeValue(array.get(i), elementSchema, fieldName + "[" + i + "]");
assertThat("Incorrect serialization.", array.get(0), equalTo(100.0)); assertThat("Incorrect serialization.", map, equalTo(Collections.singletonMap(new Utf8("key1"), 100.0)));
assertThat("Incorrect serialization.", array.get(0), equalTo(100.0)); assertThat("Incorrect serialization.", map.size(), equalTo(1)); assertThat("Incorrect serialization.", map.get(new Utf8("key1")), equalTo(100.0));
new Schema.Field(avroField.name(), avroField.schema().getElementType(), avroField.doc(), avroField.defaultVal()), ((GenericData.Array) fieldValue).get(i)); if (childObject != null) { arrayChildObjects[i] = childObject;
Object childObject = avroFieldToObject( new Schema.Field(avroFields.name(), avroField.getElementType(), avroFields.doc(), avroFields.defaultVal()), ((GenericData.Array) fieldValue).get(i)); if (childObject != null) { arrayChildObjects[i] = childObject;
Object element = array.get( arrayI ); Schema elementType = s.getElementType();
for (int i = 0; i < array.size(); i++) { final Schema elementSchema = avroSchema.getElementType(); valueArray[i] = normalizeValue(array.get(i), elementSchema, fieldName + "[" + i + "]");
subSchema.getType(), name + Support.DELIMITER + i, array.get(i), subSchema);
Object element = array.get( arrayI ); Schema elementType = s.getElementType();
/** * @return an iterator over all items contained in the array * @param type how items path is built * */ public Iterator<VisitableStructure> getItems(ArrayItemsPathType type) { final GenericData.Array array = this.getValue(); final Schema elementSchema = array.getSchema().getElementType(); final List<VisitableStructure> items = new ArrayList<>(array.size()); for (int i = 0; i < array.size(); i++) { final Object value = array.get(i); final TraversalPath path = type.buildTraversalPath(this.getPath(), i); final VisitableStructure element = VisitableStructureFactory.createVisitableStructure(elementSchema, value, path); items.add(element); } return Collections.unmodifiableList(items).iterator(); }
for (int i = 0; i < MAX_NUM_ELEMENTS_IN_MULTI_VALUE_TO_COMPARE; i++) { if (i < array.size()) { value = array.get(i); if (value instanceof Utf8) { value = value.toString();
@Test @SuppressWarnings("unchecked") public void testArrayDecryption() throws DataConversionException, IOException, SchemaConversionException { AvroStringFieldDecryptorConverter converter = new AvroStringFieldDecryptorConverter(); WorkUnitState wuState = new WorkUnitState(); wuState.getJobState().setProp("converter.fieldsToDecrypt", "array1"); wuState.getJobState().setProp("converter.decrypt.AvroStringFieldDecryptorConverter.algorithm", "insecure_shift"); converter.init(wuState); GenericRecord inputRecord = generateRecordWithArrays(); Schema inputSchema = inputRecord.getSchema(); Schema outputSchema = converter.convertSchema(inputSchema, wuState); GenericData.Array<String> fieldValue = (GenericData.Array<String>) inputRecord.get("array1"); Iterable<GenericRecord> recordIt = converter.convertRecord(outputSchema, inputRecord, wuState); GenericRecord decryptedRecord = recordIt.iterator().next(); Assert.assertEquals(outputSchema, inputSchema); GenericData.Array<String> decryptedValue = (GenericData.Array<String>) decryptedRecord.get("array1"); for (int i = 0; i < decryptedValue.size(); i++) { assertDecryptedValuesEqual(decryptedValue.get(i), fieldValue.get(i)); } }
/** * Transform an Avro array into an object array in Pinot format. */ public static Object[] transformAvroArrayToObjectArray(GenericData.Array avroArray, FieldSpec fieldSpec) { if (avroArray == null || avroArray.size() == 0) { return new Object[]{fieldSpec.getDefaultNullValue()}; } int numValues = avroArray.size(); Object[] objects = new Object[numValues]; for (int i = 0; i < numValues; i++) { objects[i] = transformAvroValueToObject(avroArray.get(i), fieldSpec); } return objects; } }