Я читаю CSV-файл внутри задания flink, используя
env.readCsvFile(input).ignoreFirstLine().pojoType(MyPojo.class,getFields());
CSV-файл состоит из 30 полей, некоторые из которых могут быть пустыми.
Для приведенного выше кода я постоянно получаю исключение:
ParserError NUMERIC_VALUE_ILLEGAL_CHARACTER
Expect field types: class java.lang.String, class java.lang.String, class
java.lang.String, class java.lang.String, class java.lang.String, class
java.lang.String, class java.lang.String, class java.lang.String, class
java.lang.String, class java.lang.String, class java.lang.String, class
java.lang.String, class java.lang.Integer, class java.lang.String, class
java.lang.String, class java.lang.String, class java.lang.String, class
java.lang.String, class java.lang.String, class java.lang.String, class
java.lang.String, class java.lang.String, class java.lang.String, class
java.lang.String, class java.lang.String, class java.lang.Integer, class
java.lang.String, class java.lang.String, class java.lang.String, class
java.lang.String
in file: C:/tmp/sample
at org.apache.flink.api.common.io.GenericCsvInputFormat.parseRecord(GenericCsvInputFormat.java:386)
at org.apache.flink.api.java.io.CsvInputFormat.readRecord(CsvInputFormat.java:115)
at org.apache.flink.api.common.io.DelimitedInputFormat.nextRecord(DelimitedInputFormat.java:527)
at org.apache.flink.api.java.io.CsvInputFormat.nextRecord(CsvInputFormat.java:83)
at org.apache.flink.runtime.operators.DataSourceTask.invoke(DataSourceTask.java:167)
at org.apache.flink.runtime.taskmanager.Task.run(Task.java:718)
at java.lang.Thread.run(Thread.java:748)
Когда я пытаюсь прочитать только один со всеми непустыми значениями, программа завершается успешно. Может ли кто-нибудь помочь, как разрешить исключение.





В сообщении об ошибке говорится
Numerical Value Illegal Character
это означает, что одно из числовых (целочисленных) полей содержит недопустимый символ, то есть символ, который целочисленный синтаксический анализатор не знает, как обрабатывать. Итак, проблема в данных, которые вы читаете. Я бы попытался определить конфликтующие строку и поле.