Поток данных использует HBaseResultCoder при настройке кодера - PullRequest
0 голосов
/ 03 февраля 2020

У меня есть задание потока данных, которое сканирует две большие таблицы и затем присоединяет Result сканирования по ключу строки.

Я пытаюсь установить кодер на HbaseResultCoder, но продолжаю получать ошибку, что его не правильный тип

PCollection<KV<String, KV<Result, Result>>> rowsJoined = JoinerUtils.leftJoin(oldBtScan, newBtScan)
    .setCoder(KvCoder.of(StringUtf8Coder.of(), KvCoder.of(HBaseResultCoder.getInstance(), HBaseResultCoder.getInstance())));

Ошибка reason: no instance(s) of type variable(s) K exist so that HBaseResultCoder conforms to Coder<K>

1 Ответ

0 голосов
/ 06 февраля 2020

Я не нашел никакой документации о JoinerUtils.leftJoin , которая, как я полагаю, могла быть причиной ошибки. Почему бы вам не воспользоваться возможностями расширения потока данных и не использовать Bigtable соединитель ? С его помощью вы можете читать большие таблицы, которые хотите объединить, в различных PCollections , а затем использовать letfOuterJoin из Apache Beam, чтобы объединить их. Помните, что оба PCollection должны иметь форму leftOuterJoin (PCollection> leftCollection, PCollection> rightCollection, V2 nullValue) .

Надеюсь, вы найдете этот обходной путь полезным.

...