试图加入两个Kstream但我收到的类型不匹配错误是代码片段。
val viewHolder = my_view_group.create<MyViewHolder>(R.layout.my_layout)
出现的错误是类型不匹配:无法从String转换为R
这是加入kstream KStream<String, String> longCounts = netExpence.join(netIncome, (key1, key2) -> key1 + "/" + key2, JoinWindows.of(joinWindowSizeMs).until(windowRetentionTimeMs),stringSerde, stringSerde, stringSerde);
请解释join(KStream<K,VO> otherStream, ValueJoiner<? super V,? super VO,? extends VR> joiner, JoinWindows windows, Joined<K,V,VO> joined)
究竟是什么。谢谢
答案 0 :(得分:1)
使用匹配记录的两个值调用ValueJoiner
并发出连接结果值。
// key type must be the same for a join
// value type can be different
KStream<KeyType, ValueType1> stream1 = ...
KStream<KeyType, ValueType2> stream2 = ...
KStream<KeyType, OutputType> joined = stream1.join(stream2, ...);
因此,ValueJoiner
必须ValueType1
作为第一个通用(? super V
),ValueType2
作为第二个通用(? super VO
)。对于第三个通用(? extend VR
),您可以指定输出类型(即上例中的OutputType
)。
<强>更新强>
您还需要为运行时配置正确的Serdes。如果所有类型都相同,则最好通过StreamsConfig
为键和/或值设置默认serdes。否则,您可以覆盖每个运算符的默认Serdes: