Skip to content

Commit 2014264

Browse files
fix for CDAP Customer Bug 19666
1 parent d9f7028 commit 2014264

1 file changed

Lines changed: 10 additions & 1 deletion

File tree

src/main/java/io/cdap/plugin/snowflake/source/batch/SnowflakeRecordReader.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,20 +17,26 @@
1717
package io.cdap.plugin.snowflake.source.batch;
1818

1919
import au.com.bytecode.opencsv.CSVReader;
20+
2021
import org.apache.hadoop.io.NullWritable;
2122
import org.apache.hadoop.mapreduce.InputSplit;
2223
import org.apache.hadoop.mapreduce.RecordReader;
2324
import org.apache.hadoop.mapreduce.TaskAttemptContext;
25+
import org.slf4j.Logger;
26+
import org.slf4j.LoggerFactory;
2427

2528
import java.io.IOException;
29+
import java.util.Arrays;
2630
import java.util.HashMap;
2731
import java.util.Map;
32+
import java.util.stream.Collectors;
2833

2934
/**
3035
* RecordReader implementation, which reads object from Snowflake.
3136
*/
3237
public class SnowflakeRecordReader extends RecordReader<NullWritable, Map<String, String>> {
3338

39+
private static final Logger LOG = LoggerFactory.getLogger(SnowflakeRecordReader.class);
3440
private final String stageSplit;
3541
private final SnowflakeSourceAccessor snowflakeAccessor;
3642
private CSVReader csvReader;
@@ -62,7 +68,10 @@ public NullWritable getCurrentKey() {
6268
@Override
6369
public Map<String, String> getCurrentValue() {
6470
Map<String, String> result = new HashMap<>();
65-
for (int i = 0; i < headers.length; i++) {
71+
if (headers.length != nextLine.length) {
72+
LOG.warn("Row with wrong data in csv -> {}", Arrays.stream(nextLine).collect(Collectors.joining(",")));
73+
}
74+
for (int i = 0; i < headers.length && i < nextLine.length; i++) {
6675
result.put(headers[i], nextLine[i]);
6776
}
6877
return result;

0 commit comments

Comments
 (0)