我已经使用TableSource类将数据从CSV文件导入到Apache Flink Java中,并按照您在下面的大代码示例中完全看到的方式注册了该表。当我打印HBATable的数据类型时,得到以下输出:
|-- measurementID: INT
|-- dateTime: TIMESTAMP(3)
|-- result: DOUBLE
|-- unixDateTime: BIGINT
问题是,当我尝试在HBATable上执行简单的SQL查询时,在Result
列上收到parseError。您可以在下面看到简单的SQL查询和错误消息。
Table t = tableEnv.sqlQuery("SELECT result FROM HBATable " );
线程“主”中的异常org.apache.flink.table.api.SqlParserException:SQL解析失败。在第1行第8列遇到“结果”
BatchTableEnvironment tableEnv = BatchTableEnvironment.create(fbEnv);
TableSource csvSource = CsvTableSource.builder()
.path("path")
.fieldDelimiter(";")
.field("ID", Types.INT())
.field("dateTime", Types.SQL_TIMESTAMP())
.field("result", Types.DOUBLE())
.field("unixDateTime", Types.LONG())
.build();
//Register the TableSource as table "HTable"
tableEnv.registerTableSource("HTable", csvSource);
Table HBATable = tableEnv.scan("HTable");
tableEnv.registerTable("HBATable", HBATable);