Я пытаюсь преобразовать столбец (с именем result
) из CSV-файла в двойной тип данных в Java Apache Flink. Пример значения этого столбца в файле CSV: 123,456
. В этом столбце не более 3 цифр до и после запятой. Я использую для этого класс TableSource. Я получаю сообщение об ошибке ниже: Caused by: org.apache.flink.api.common.io.ParseException: Parsing error for column 2 of row '5182; 57,01' originated by DoubleParser: NUMERIC_VALUE_FORMAT_ERROR.
Я уже пытался заменить "," на "."как вы можете видеть в коде ниже. Но приведенный ниже код не заменяет «,» на «.».
ExecutionEnvironment fbEnv = ExecutionEnvironment.getExecutionEnvironment();
BatchTableEnvironment tableEnv = BatchTableEnvironment.create(fbEnv);
//CSV file to Tablesource
TableSource csvSource = CsvTableSource.builder()
.path("path")
.fieldDelimiter(";")
.field("ID", Types.INT())
.field("result".replace(",", "."), Types.DOUBLE())
.build();
// register the TableSource
tableEnv.registerTableSource("HTable", csvSource);
Table HTable = tableEnv.scan("HTable");
DataSet<Row> result = tableEnv.toDataSet(HTable, Row.class);
//Print table
try {
result.print();
} catch (Exception e) {
e.printStackTrace();
}