Поддерживает ли CDAP несколько входов в плагинах SparkCompute и SparkSink?

Я ищу способ реализации плагина 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 или что-то подобное)?

1 ответ

В конвейере CDAP, когда этап имеет несколько входных этапов, он получает объединение всех входящих данных. Это причина того, что структура конвейера не позволит вам создать конвейер, в котором входящие схемы отличаются. Единственным исключением являются плагины для столяров. Таким образом, он обрабатывает несколько входных данных, но не так, чтобы вы могли различать их.

Другие вопросы по тегам