Spark到Flink并行化方法

时间:2016-04-26 05:32:46

标签: apache-flink

我是Flink的新手,目前正致力于将Spark中的一些代码示例转换为Flink。 Flink中JavaSparkContext中并行化方法的类似功能是什么?我试图转换以下代码:

JavaRDD<Integer> workload = ctx.parallelize(Arrays.asList(init_val), parallel).map(new Function<Integer, Integer>() {
      @Override
      public Integer call(Integer s) throws InterruptedException {
        Thread.sleep(s * 1000);
        return 0;
      }
    });

2 个答案:

答案 0 :(得分:0)

Flink相当于JavaSparkContext.parallelize()ExecutionEnvironment.fromCollection()

因此,您的代码段应转换为:

// get execution environment
ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment();

// create data set from collection
DataSet<Integer> input = env.fromCollection(Arrays.asList(init_val));
// apply map function
DataSet<Integer> result = input.map(new MapFunction<Integer, Integer>() {
  @Override
  public Integer map(Integer s) {
    Thread.sleep(s * 1000);
    return 0;
  }
}).setParallelism(parallel); // set parallelism of map function

答案 1 :(得分:0)

您可以使用fromCollection提供的ExecutionEnvironment方法。

ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment();
DataSet<Integer> input = env.fromCollection(inputList);