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/

Другие вопросы по тегам