Apache Flink:无法将Table对象转换为DataSet对象

时间:2018-03-04 14:14:54

标签: apache-flink flink-sql

我在Flink 1.4.0上使用Table API。我有一些Table个对象要转换为DataSet类型Row。该项目使用Maven构建并在IntelliJ上导入。我有以下代码,IDE无法解析方法tableenv.toDataSet()方法。请帮帮我。谢谢。

ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment();
BatchTableEnvironment tableEnvironment = TableEnvironment.getTableEnvironment(env);
...
tableEnvironment.registerTableSource("table1",csvSource);
Table table1 = tableEnvironment.scan("table1");
DataSet<Row> result = tableEnvironment.toDataSet(table1, Row.class);

最后一个语句导致错误

  

&#34;无法解析toDataSet()方法&#34;

2 个答案:

答案 0 :(得分:0)

如果您想从DataSet文件中读取csv,请执行以下操作:

DataSet<YourType> csvInput = env.readCsvFile("hdfs:///the/CSV/file") ...

更多相关信息:https://ci.apache.org/projects/flink/flink-docs-release-1.4/dev/batch/#data-sources

答案 1 :(得分:0)

您可能无法导入正确的BatchTableEnvironment

请检查您是否导入org.apache.flink.table.api.java.BatchTableEnvironment而不是org.apache.flink.table.api.BatchTableEnvironment。前者是Java和Scala变体的通用基类。