Водяные знаки в Spark Структурированные потоковые 2.3.0 - PullRequest
1 голос
/ 14 июня 2019

Я читаю данные из Кафки в Spark Structured Streaming 2.3.0.Данные содержат информацию о некоторых учителях, есть имя учителя, имя учителя и имя учителя.TeacherGroupsIds - это столбец массива, который содержит идентификаторы группы.В моей задаче я должен сопоставить столбец с идентификаторами групп столбцу, содержащему информацию об именах групп ([1,2,3] => [Солнца, Книги, Цветы]).Имена и идентификаторы хранятся в HBase и могут меняться каждый день.Позже я должен отправить данные в другую тему Кафки.

Итак, я читаю данные из двух источников - Кафки и HBase.Я читаю данные из HBase, используя библиотеку shc.

Сначала я разбираю столбец массива (идентификаторы групп), затем присоединяюсь к данным из HBase.

На следующем шаге я хочу объединитьданные с использованием teacherId.Но эта операция не поддерживается в режиме добавления, который я использую.

Я пробовал с водяными знаками, но на данный момент это не работает.Я добавил новый столбец с отметкой времени и сгруппировал бы по этому столбцу.

Dataset<Row> inputDataset = //reading from Kafka

Dataset<Row> explodedDataset = // explode function applied and join with HBase

Dataset<Row> outputDataset = explodedDataset
.withColumn("eventTime", lit(current_timestamp()))
.withWatermark("eventTime", "2 minutes")
.groupBy(window(col("eventTime"), "5 seconds"), col("teacherId"))
.agg(collect_list(col("groupname")));

Фактические результаты показывают пустой кадр данных на выходе.Там нет ни одной строки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...