我无法编译mapreducespecification.of。当我选择//new datastoreoutput(1))时,它确实可以工作,但在使用new googlecloudstoragefileoutput(“images.sb.a-cti.com/staging/test”,“result.txt”,“text/plain”,1))时,它可以工作。这个显示编译错误不确定我是否遗漏了什么。
我试过用不同的封送员替换,但结果是一样的。
有人能帮我照一下吗。
@RequestMapping("/accountJDOCounter")
public void accountJDOCounter(HttpServletRequest request, HttpServletResponse response){
try{
String entityClassName = request.getParameter("entityClassName");
String entityKind = request.getParameter("entityKind");
if(entityKind == null){
response.getWriter().write("Error");
return;
}
MapReduceSettings settings = new MapReduceSettings().setWorkerQueueName("default").setControllerQueueName("default").setBuck etName("images.sb.a-cti.com/staging/test");
logger.info("Creating job15");
String jobId = MapReduceJob.start(
MapReduceSpecification.of(
"AccountJDO",
new DatastoreInput(entityKind, 10),
new AccountCounterMapper(),
Marshallers.getStringMarshaller(),
Marshallers.getLongMarshaller(),
new AccountCounterReducer(),
//new InMemoryOutput<KeyValue<String, Long>>(2)),
new GoogleCloudStorageFileOutput("images.sb.a-cti.com/staging/test", "result.txt", "text/plain", 1)),
//new DatastoreOutput(1)),
settings);
// jobId is used to monitor, see step 5) below
response.getWriter().write("jobId " + jobId);
logger.info("JobId " + jobId);
}catch(Exception e){
StringWriter sw = new StringWriter();
PrintWriter pw = new PrintWriter(sw);
e.printStackTrace(pw);
logger.info("Error " + sw.toString());
}
}
错误详细信息:此行有多个标记
类型mapreducespecification中的方法(string、input、mapper、marshaller、marshaller、reducer、output)无效
适用于参数(string、datastoreinput、accountcountermapper、marshaller、marshaller、accountcounterreducer、,
inmemoryoutput>)
类型mapreducespecification中的方法(string、input、mapper、marshaller、marshaller、reducer、output)无效
适用于参数(string、datastoreinput、accountcountermapper、marshaller、marshaller、accountcounterreducer、,
googlecloudstoragefileoutput)
提前谢谢。
1条答案
按热度按时间kmb7vmvb1#
签名中的泛型需要匹配。googlecloudstoragefileoutput采用bytebuffer,datastoreoutput采用实体。因此,根据accountcounterreducer发出的类型,您需要选择与该类型匹配的输出。