在java中使用tablesource、table或dataset对象将字符串转换为double

gr8qqesn  于 2021-06-24  发布在  Flink
关注(0)|答案(1)|浏览(309)

我已经将csv文件中的数据导入到flinkjava中。其中一个属性我必须导入为字符串(属性 Result )因为分析错误。现在我想把字符串转换成双精度。但我不知道如何处理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);
a5g8bdjr

a5g8bdjr1#

我认为应该使用replace和cast的组合来将字符串转换为double,比如“select id,cast(replace(result,,,,,,,,,,,,”)as double)as result,…”或者使用table api的等效方法。

相关问题