我正在寻找一种方法来实现一个SparkCompute (或SparkSink)插件,从多个输入消费。
从界面上看,SparkCompute
和SparkSink
插件都被限制为只能使用一个。
这是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
或类似的东西)?
发布于 2019-05-24 08:39:56
在CDAP管道中,当一个阶段有多个输入阶段时,它接收所有传入数据的联合。这就是管道框架不允许您在传入模式不同的地方创建管道的原因。唯一的例外是joiner插件。因此,它正在处理多个输入,但不是以一种让您区分它们的方式。
https://stackoverflow.com/questions/56260257
复制相似问题