Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.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
Java sparkmap函数中的异步代码_Java_Multithreading_Asynchronous_Apache Spark_Mapreduce - Fatal编程技术网

Java sparkmap函数中的异步代码

Java sparkmap函数中的异步代码,java,multithreading,asynchronous,apache-spark,mapreduce,Java,Multithreading,Asynchronous,Apache Spark,Mapreduce,我想将spark用于MapReduce任务。在map函数中,我使用第三方库进行计算。问题是此库异步工作,类似于: long id = lib.doJob(inputData); // start async job 然后我可以将侦听器附加到库以获得结果,这就是它的工作方式: lib.setListener(new Listener() { @Override public void onDone(long id) { Result result = lib.ge

我想将spark用于MapReduce任务。在map函数中,我使用第三方库进行计算。问题是此库异步工作,类似于:

long id = lib.doJob(inputData); // start async job
然后我可以将侦听器附加到库以获得结果,这就是它的工作方式:

lib.setListener(new Listener() {
    @Override
    public void onDone(long id) {
        Result result = lib.getResult(id); // I can only get result this way
    }
    // ... other progress callbacks
});
所以我的问题是-我如何使用spark的map函数中的库?我想要像这样的东西:

JavaRDD<Result> results = rdd.map(new MapFuntion<Source, Result> {
    public Result call(Source src) {
        long id = lib.doJob(src);
        // ... ?? wait while lib's job is done and get the result
        return result;
    }
}); 
javarddresults=rdd.map(新映射函数){
公共结果调用(源src){
long id=lib.doJob(src);
//等待lib的工作完成并获得结果
返回结果;
}
}); 

就个人而言,我会将此信息反馈给在
mapPartitions
中运行整批的流媒体作业,这将是下一个合理的方法。就个人而言,我会将此信息反馈给在
mapPartitions
中运行整批的流媒体作业,这将是下一个合理的方法。