Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google cloud dataflow 如何为KV<;指定编码器;布尔值,映射<;字符串,对象>&燃气轮机;在googlebeam/dataflow中_Google Cloud Dataflow_Apache Beam - Fatal编程技术网

Google cloud dataflow 如何为KV<;指定编码器;布尔值,映射<;字符串,对象>&燃气轮机;在googlebeam/dataflow中

Google cloud dataflow 如何为KV<;指定编码器;布尔值,映射<;字符串,对象>&燃气轮机;在googlebeam/dataflow中,google-cloud-dataflow,apache-beam,Google Cloud Dataflow,Apache Beam,我有一个在json文件中描述的表,基于此,我希望稍后创建一个集合作为sideInput PCollection pC=p_jsonstring .apply(“创建…”),MapElements.via((字符串输入)->{ 试一试{ ObjectMapper mapper=新的ObjectMapper(); 映射mytable= readValue(输入,新类型引用(){}); 布尔键=(布尔)mytable.get(“mykey”); 返回KV.of(键,mytable); }捕获(IOE异

我有一个在json文件中描述的表,基于此,我希望稍后创建一个集合作为sideInput

PCollection pC=p_jsonstring
.apply(“创建…”),MapElements.via((字符串输入)->{
试一试{
ObjectMapper mapper=新的ObjectMapper();
映射mytable=
readValue(输入,新类型引用(){});
布尔键=(布尔)mytable.get(“mykey”);
返回KV.of(键,mytable);
}捕获(IOE异常){
e、 printStackTrace();
返回null;
}
}).withOutputType(新类型描述符(){}));
运行时,我收到以下错误消息:

严重:无法返回create KV../Map.out[PCollection]的默认编码器。纠正以下根本原因之一: 没有手动指定编码器;可以使用.setCoder()执行此操作。 从CoderRegistry推断编码器失败:无法为org.apache.beam.sdk.values.KV>提供默认编码器。纠正以下根本原因之一: 使用注册的CoderFactory生成编码器失败:无法为参数化类型org.apache.beam.sdk.values.KV>提供编码器:无法为java.util.Map提供默认编码器。纠正以下根本原因之一: 使用注册的CoderFactory生成编码器失败:无法为参数化类型java.util.Map提供编码器:无法为java.lang.Object提供默认编码器。纠正以下根本原因之一: 使用已注册的CoderFactory生成编码器失败:无法基于类java.lang的值提供编码器。对象:尚未为该类注册CoderFactory。 从@DefaultCoder注释生成编码器失败:类java.lang.Object没有@DefaultCoder注释

我认为问题主要与
Map
中的
Object
有关,但在我的例子中,映射值仅在运行时从文件读取json字符串时确定。对象类型可以是字符串、数字或布尔值


任何建议?

< P>我认为罐头应该在这里作为输出类型工作,并且您可以考虑将输入字符串保持为map值中的字符串,并且当您实际上要处理对象时反序列化。如果您只想在这里反序列化,请考虑为反序列化对象创建一个并使用行作为值类。你可以

你找到解决办法了吗?