@Override public Writer<Result> createWriter(RuntimeContainer adaptor) { return new BulkFileWriter(this, fileSink.getBulkFileProperties(), adaptor); }
@Override public Result close() throws IOException { flush(); csvWriter.close(); return result; }
@Override public void write(Object datum) throws IOException { if (null == datum) { return; } if (!headerIsReady && (!isAppend || fileIsEmpty)) { Schema schema = new Schema.Parser().parse(bulkProperties.schema.schema.getStringValue()); if (AvroUtils.isIncludeAllFields(schema) && (datum instanceof org.apache.avro.generic.IndexedRecord)) { org.apache.avro.generic.IndexedRecord record = (org.apache.avro.generic.IndexedRecord) datum; schema = record.getSchema(); } csvWriter.writeRecord(getHeaders(schema)); headerIsReady = true; } List<String> values = getValues(datum); csvWriter.writeRecord(values.toArray(new String[values.size()])); result.totalCount++; }
public List<String> getValues(Object datum) { IndexedRecord input = getFactory(datum).convertToAvro((IndexedRecord) datum); List<String> values = new ArrayList<String>(); for (Schema.Field f : input.getSchema().getFields()) { if (input.get(f.pos()) != null) { values.add(String.valueOf(input.get(f.pos()))); } else { values.add(""); } } return values; }
@Override public void write(Object datum) throws IOException { if (null == datum) { return; } if (!headerIsReady && (!isAppend || fileIsEmpty)) { Schema schema = new Schema.Parser().parse(bulkProperties.schema.schema.getStringValue()); if (AvroUtils.isIncludeAllFields(schema) && (datum instanceof org.apache.avro.generic.IndexedRecord)) { org.apache.avro.generic.IndexedRecord record = (org.apache.avro.generic.IndexedRecord) datum; schema = record.getSchema(); } csvWriter.writeRecord(getHeaders(schema)); headerIsReady = true; } List<String> values = getValues(datum); csvWriter.writeRecord(values.toArray(new String[values.size()])); result.totalCount++; }
public List<String> getValues(Object datum) { IndexedRecord input = getFactory(datum).convertToAvro((IndexedRecord) datum); List<String> values = new ArrayList<String>(); for (Schema.Field f : input.getSchema().getFields()) { if (input.get(f.pos()) != null) { values.add(String.valueOf(input.get(f.pos()))); } else { values.add(""); } } return values; }
@Override public Result close() throws IOException { flush(); csvWriter.close(); return result; }
@Override public Writer<Result> createWriter(RuntimeContainer adaptor) { return new BulkFileWriter(this, fileSink.getBulkFileProperties(), adaptor); }