Apache Flink: невозможно преобразовать объект Table в объект DataSet
Я использую Table API на Flink 1.4.0. у меня есть немного 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);
Последнее утверждение вызывает ошибку
"Не удается разрешить метод toDataSet()"
2 ответа
Вы не можете импортировать право BatchTableEnvironment
,
Пожалуйста, проверьте, что вы импортируете org.apache.flink.table.api.java.BatchTableEnvironment
вместо org.apache.flink.table.api.BatchTableEnvironment
, Первый является общим базовым классом для вариантов Java и Scala.
Если вы хотите прочитать DataSet
из csv
файл, сделайте это следующим образом:
DataSet<YourType> csvInput = env.readCsvFile("hdfs:///the/CSV/file") ...
Подробнее об этом: https://ci.apache.org/projects/flink/flink-docs-release-1.4/dev/batch/