Flink - Таблица SQL API - Добавить столбец в таблицу

Интересно, есть ли способ добавить столбец с постоянным значением в таблицу во Flink (Java API), что-то вроде функции.withColumn в Spark DF/DS?

С уважением, Бастьен

1 ответ

Решение

Если вы находитесь в среде Java, это можно сделать с помощью простого SELECT запрос и регистрация полученного Table в каталоге.

// add constant column
Table withColumn = tEnv.sqlQuery("SELECT a, b, c, 'MyConstant' AS d FROM origTable");
// register new table
tEnv.registerTable("tableWithColumn", withColumn);

// query table with constant column
Table result = tEnv.sqlQuery("SELECT * FROM tableWithColumn");

Первый SQL-запрос выполняется не сразу. Это больше похоже на определение представления, которое автоматически вставляется и оптимизируется вместе со вторым запросом перед выполнением.

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