Row row = new GenericRowWithSchema(values, structType); out.add(row);
private void getObjectsFromNestedRow(final ArrayList<Object> objects, final GenericRowWithSchema row) { for (final StructField field : row.schema().fields()) { final Object fieldValue = row.getAs(field.name()); if (fieldValue instanceof GenericRowWithSchema) { getObjectsFromNestedRow(objects, (GenericRowWithSchema) fieldValue); } else { objects.add(fieldValue); } } }
Row row = new GenericRowWithSchema(values, structType); out.add(row);
private void recusivelyGenerateSparkObjects(final Iterator<Object> parquetObjects, final DataType fieldType, final ArrayList<Object> recordBuilder) throws SerialisationException { if (fieldType instanceof StructType) { final ArrayList<Object> nestedRecordBuilder = new ArrayList<>(); for (final String field : ((StructType) fieldType).fieldNames()) { final DataType innerDataType = ((StructType) fieldType).apply(field).dataType(); recusivelyGenerateSparkObjects(parquetObjects, innerDataType, nestedRecordBuilder); } final Object[] rowObjects = new Object[nestedRecordBuilder.size()]; nestedRecordBuilder.toArray(rowObjects); recordBuilder.add(new GenericRowWithSchema(rowObjects, (StructType) fieldType)); } else { // must be a primitive type final Object parquetObject = parquetObjects.next(); if (parquetObject instanceof Map) { recordBuilder.add(scala.collection.JavaConversions.mapAsScalaMap((Map<Object, Object>) parquetObject)); } else { recordBuilder.add(parquetObject); } } }
@Override public Row call(SimpleFeature feature) throws Exception { Object[] fields = new Serializable[schema.size()]; for (int i = 0; i < schema.size(); i++) { Object fieldObj = feature.getAttribute(i); if (fieldObj != null) { StructField structField = schema.apply(i); if (structField.name().equals("geom")) { fields[i] = fieldObj; } else if (structField.dataType() == DataTypes.TimestampType) { fields[i] = new Timestamp(((Date) fieldObj).getTime()); } else if (structField.dataType() != null) { fields[i] = fieldObj; } else { LOGGER.error("Unexpected attribute in field(" + structField.name() + "): " + fieldObj); } } } return new GenericRowWithSchema(fields, schema); } }
final GenericRowWithSchema mergedRow = new GenericRowWithSchema(outputRow.toArray(), v1.schema()); LOGGER.trace("Merged row: {}", mergedRow); return mergedRow;
Row row = new GenericRowWithSchema(values, structType); return row; } else { Row row = new GenericRowWithSchema(values, structType); return row;
Row row = new GenericRowWithSchema(values, structType); return row; } else { Row row = new GenericRowWithSchema(values, structType); return row;