Преобразование String в Double с объектом TableSource, Table или DataSet в Java - PullRequest
0 голосов
/ 16 октября 2019

Я импортировал данные из CSV-файла в Flink Java. Один из атрибутов, который мне пришлось импортировать как строку (атрибут Result) из-за ошибок синтаксического анализа. Теперь я хочу преобразовать String в Double. Но я не знаю, как это сделать с объектом класса TableSource, Table или DataSet. Смотрите мой код ниже для этого.

Я изучил документацию по flink и попробовал некоторые решения с классами Map и FlatMap. Но я не нашел решения для этого.

        BatchTableEnvironment tableEnv = BatchTableEnvironment.create(fbEnv);

//Get H data from CSV file.
TableSource csvSource = CsvTableSource.builder()
                .path("Path")
                .fieldDelimiter(";")
                .field("ID", Types.INT())
                .field("result", Types.STRING())
                .field("unixDateTime", Types.LONG())
                .build();

   // register the TableSource
        tableEnv.registerTableSource("HTable", csvSource);

        Table HTable = tableEnv.scan("HTable");

        DataSet<Row> result = tableEnv.toDataSet(HTable, Row.class);

1 Ответ

0 голосов
/ 16 октября 2019

Я думаю, что это должно работать, чтобы использовать комбинацию replace и cast для преобразования строк в double, как в «SELECT id, CAST (REPLACE (result, ','»), '.') AS DOUBLE) AS result, ... "или эквивалент с использованием таблицы API.

...