@@ -250,10 +250,10 @@ private void serializeIteratorToCsvStreaming(DataIterator iterator, Path tempCsv
250250 try (BufferedWriter bw = Files .newBufferedWriter (tempCsv , StandardCharsets .UTF_8 )) {
251251 long count = 0 ;
252252 while (iterator .hasNext ()) {
253+ count ++;
253254 IRecord r = iterator .next ();
254- bw .write (toCsvLine (r ));
255+ bw .write (toCsvLine (r , count ));
255256 bw .write ("\n " );
256- count ++;
257257 if (count % 10000 == 0 ) {
258258 LOGGER .debug ("Serialized records " + count );
259259 }
@@ -266,9 +266,9 @@ private void serializeIteratorToCsvStreaming(List<IRecord> records, Path tempCsv
266266 try (BufferedWriter bw = Files .newBufferedWriter (tempCsv , StandardCharsets .UTF_8 )) {
267267 long count = 0 ;
268268 for (IRecord r : records ) {
269- bw . write ( toCsvLine ( r )) ;
270- bw .write (" \n " );
271- count ++ ;
269+ count ++ ;
270+ bw .write (toCsvLine ( r , count ) );
271+ bw . write ( " \n " ) ;
272272 if (count % 10000 == 0 ) {
273273 LOGGER .debug ("Serialized records " + count );
274274 }
@@ -277,8 +277,14 @@ private void serializeIteratorToCsvStreaming(List<IRecord> records, Path tempCsv
277277 }
278278 }
279279
280- private String toCsvLine (IRecord record ) {
280+ private String toCsvLine (IRecord record , long count ) {
281281 StringBuilder sb = new StringBuilder ();
282+
283+ if (this .isRowCountColumIncluded ()) {
284+ sb .append (count );
285+ sb .append (COLUMN_SEPARATOR );
286+ }
287+
282288 for (int j = 0 ; j < record .getFields ().size (); j ++) {
283289 IField field = record .getFieldAt (j );
284290 Object fieldValue = field .getValue ();
0 commit comments