这是关于管道实施的设计问题.以下是我的天真实施.
管道中各个步骤/阶段的接口:
public interface Step<T, U> {
public U execute(T input);
}
Run Code Online (Sandbox Code Playgroud)
管道中步骤/阶段的具体实现:
public class StepOne implements Step<Integer, Integer> {
@Override
public Integer execute(Integer input) {
return input + 100;
}
}
public class StepTwo implements Step<Integer, Integer> {
@Override
public Integer execute(Integer input) {
return input + 500;
}
}
public class StepThree implements Step<Integer, String> {
@Override
public String execute(Integer input) {
return "The final amount is " + input;
}
}
Run Code Online (Sandbox Code Playgroud)
管道类将保存/注册管道中的步骤并一个接一个地执行它们:
public class Pipeline {
private …
Run Code Online (Sandbox Code Playgroud) 这可能是一个愚蠢的问题。不过,我想知道我是否有这样的东西 - rdd.mapPartitions(func)
。逻辑应该func
是线程安全的吗?
谢谢