NUMERIC_VALUE_ILLEGAL_CHARACTER с миганием при чтении CSV - PullRequest
0 голосов
/ 28 мая 2018

Я читаю csv-файл в задании flink, используя

env.readCsvFile(input).ignoreFirstLine().pojoType(MyPojo.class,getFields());

Файл csv состоит из 30 полей, и некоторые поля могут быть пустыми.

Для приведенного выше кода IЯ постоянно получаю исключение:

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)

Когда я пытаюсь прочитать только один со всеми непустыми значениями, программа завершается успешно.Может кто-нибудь помочь, как решить исключение.

1 Ответ

0 голосов
/ 28 мая 2018

В сообщении об ошибке указывается

Числовое значение Недопустимый символ

, что означает, что одно из числовых (целых) полей содержит недопустимый символ, т. Е. Символчто целочисленный синтаксический анализатор не знает, как обращаться.Итак, проблема в данных, которые вы читаете.Я бы попытался определить конфликтующие строку и поле.

...