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