You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何创建空的PCollection<KV<String, Incident>>?解决编译报错

解决创建空PCollection<KV<String, Incident>>的编译错误

问题原因

你遇到的编译错误Cannot resolve method 'of(Class<KV>, Class<String>, Class<Incident>)',是因为TypeDescriptor.of()并不支持传入多个Class参数来指定泛型类的具体参数类型。KV作为泛型类,直接通过Class无法保留其泛型参数的类型信息,而你调用的多参数of()方法实际并不存在。

正确实现方式

方式一:使用Beam提供的TypeDescriptors工具类

Beam专门提供了TypeDescriptors类来简化泛型类型描述符的创建,针对KV类型可以直接用kv()方法:

import org.apache.beam.sdk.values.TypeDescriptors;

PCollection<KV<String, Incident>> incidents = pipeline.apply("Create Empty Collection", 
    Create.empty(TypeDescriptors.kv(String.class, Incident.class)));

方式二:使用匿名TypeDescriptor子类

通过创建TypeDescriptor的匿名子类,让编译器保留泛型类型的具体信息(避免类型擦除导致的信息丢失):

import org.apache.beam.sdk.values.TypeDescriptor;

PCollection<KV<String, Incident>> incidents = pipeline.apply("Create Empty Collection", 
    Create.empty(new TypeDescriptor<KV<String, Incident>>() {}));

说明

两种方式都能正确创建空的PCollection<KV<String, Incident>>,其中方式一更简洁,是Beam官方推荐的写法。

内容的提问来源于stack exchange,提问作者david7596

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 22:24:56