首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >类型为withValueSerde()的方法Materialized<>不适用

类型为withValueSerde()的方法Materialized<>不适用
EN

Stack Overflow用户
提问于 2018-06-26 10:24:20
回答 1查看 1.3K关注 0票数 5

我正在按键对流进行分组,并试图按分组键聚合值。我在跟踪流.开发人员.指南

我在withValueSerde上有个错误。上面写着:

The method withValueSerde(Serde<Object>) in the type Materialized<Object,Object,StateStore> is not applicable for the arguments (Serde<Long>)

代码:

代码语言:javascript
复制
KStream<String, String> inputStream = builder.stream("input_topic");
KStream<String, Integer> transformedStream = inputStream.map(
        (key, value) ->  KeyValue.pair(getKey(value), getValue(value)));

KGroupedStream<String, Integer> groupedStream = transformedStream.groupByKey();

KTable<String, Long> aggregatedStream = groupedStream.aggregate(() -> 0L,
        (aggKey, newValue, aggValue) -> aggValue + newValue,
        Materialized.as("aggregated-stream-store").withValueSerde(Serdes.Long()));
EN

回答 1

Stack Overflow用户

发布于 2018-06-26 18:36:13

您需要指定泛型类型。Java不能自动推断它们(如果您查看错误消息,它只是表示表示未知类型的Materialized<Object,Object,StateStore> ):

代码语言:javascript
复制
Materialized.<String, Long, KeyValueStore<Bytes, byte[]>>as("aggregated-stream-store")
    .withValueSerde(Serdes.Long())
票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51040555

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档