在 Apache Flink 中选择双列时出现解析错误 SQL
Parse error while selecting Double column in Apache Flink SQL
我已经使用 TableSource class 将 CSV 文件中的数据导入 Apache Flink Java 并注册了 table,正如您在下面的大代码示例中看到的那样。当我打印 HBATable 的数据类型时,我得到以下输出:
|-- measurementID: INT
|-- dateTime: TIMESTAMP(3)
|-- result: DOUBLE
|-- unixDateTime: BIGINT
问题是,当我尝试对 HBATable 执行简单的 SQL 查询时,我在 Result
列上收到 parseError。您可以看到下面的简单 SQL 查询和错误消息。
Table t = tableEnv.sqlQuery("SELECT result FROM HBATable " );
Exception in thread "main" org.apache.flink.table.api.SqlParserException: SQL parse failed. Encountered "result" at line 1, column 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);
result
是一个 reserved keyword。尝试重命名该字段。
我已经使用 TableSource class 将 CSV 文件中的数据导入 Apache Flink Java 并注册了 table,正如您在下面的大代码示例中看到的那样。当我打印 HBATable 的数据类型时,我得到以下输出:
|-- measurementID: INT
|-- dateTime: TIMESTAMP(3)
|-- result: DOUBLE
|-- unixDateTime: BIGINT
问题是,当我尝试对 HBATable 执行简单的 SQL 查询时,我在 Result
列上收到 parseError。您可以看到下面的简单 SQL 查询和错误消息。
Table t = tableEnv.sqlQuery("SELECT result FROM HBATable " );
Exception in thread "main" org.apache.flink.table.api.SqlParserException: SQL parse failed. Encountered "result" at line 1, column 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);
result
是一个 reserved keyword。尝试重命名该字段。