1

我正在寻找一种方法来实现从多个输入消耗的 SparkCompute(或 SparkSink)插件的 SparkCompute(或 SparkSink)插件。

看界面,SparkComputeSparkSink插件都仅限于使用一个。

这是摘自io.cdap.cdap.etl.api.batch.SparkCompute


  /**
   * Transform the input and return the output to be sent to the next stage in the pipeline.
   *
   * @param context {@link SparkExecutionPluginContext} for this job
   * @param input input data to be transformed
   * @throws Exception if there is an error during this method invocation
   */
  public abstract JavaRDD<OUT> transform(SparkExecutionPluginContext context, JavaRDD<IN> input) throws Exception;

(只有一个JavaRDD<IN>(方法签名中

有没有办法访问所有的输入(通过SparkExecutionPluginContext context或类似的东西)?

4

1 回答 1

2

在 CDAP 管道中,当一个阶段有多个输入阶段时,它会接收所有传入数据的并集。这就是管道框架不允许您创建传入模式不同的管道的原因。唯一的例外是连接器插件。所以它正在处理多个输入,但不是以一种让你区分它们的方式。

于 2019-05-24T00:39:55.640 回答