数据流在设置编码器时使用hbaseresultcoder

eivgtgni  于 2021-06-07  发布在  Hbase
关注(0)|答案(1)|浏览(346)

我有一个数据流作业,它扫描两个大表,然后连接 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>

bkkx9g8r

bkkx9g8r1#

我没有找到任何关于joinerutils.leftjoin的文档,我认为这可能是导致错误的原因。为什么不利用数据流升级功能并使用bigtable连接器呢?使用它,您可以读取要在不同的pcollection中合并的大表,然后使用apachebeam的letfouterjoin来合并它们。请注意,两个pcollection的格式都必须是leftouterjoin(pcollection>leftcollection,pcollection>rightcollection,v2 nullvalue)。
希望您觉得此解决方法有用。

相关问题