1

Я пытаюсь использовать новую функциональность display data в Dataflow, чтобы получить дополнительную информацию в пользовательском интерфейсе Google Cloud Dataflow. Однако данные дисплея для пользовательских PTransform не отображаются. В моем Dataflow трубопровода, у меня есть преобразование, как:Dataflow Display Данные, отсутствующие в составном преобразовании

Pipeline p = // .. 
p.apply(new PTransform<PCollection<Integer>, PCollection<Integer>>() { 
    @Override 
    public PCollection<Integer> apply(PCollection<Integer> input) { 
    return input 
     .apply(/* .. */) 
     .apply(/* .. */) 
     .apply(/* .. */); 
    } 

    @Override 
    public void populateDisplayData(DisplayData.Builder builder) { 
    builder.add(DisplayData.item("foo", "bar")); 
    } 
}); 

Когда я бег DataFlow работы, пользовательский интерфейс, кажется, не показывает отобразить данные foo=bar.

ответ

1

Данные дисплея не поддерживаются на composite transforms. Вместо этого вы можете прикреплять отображаемые данные к любой пользовательской функции, выполняемой вашим преобразованием. Например, если одна из внутренних преобразований в приведенном выше композиционном материале использует ParDo, можно переписать методы отображения данных, как:

Pipeline p = // .. 
p.apply(new PTransform<PCollection<Integer>, PCollection<Integer>>() { 
    @Override 
    public PCollection<Integer> apply(PCollection<Integer> input) { 
    return input 
     .apply(/* .. */) 
     .apply(/* .. */) 
     .apply(ParDo.of(new DoFn<Integer, Integer>() { 
     @Override 
     public void processElement(ProcessContext c) { /* .. */ } 

     @Override 
     public void populateDisplayData(DisplayData.Builder builder) { 
      builder.add(DisplayData.item("foo", "bar")); 
     }    
     })); 
    } 
}); 

Существует a JIRA issue расширить функциональные возможности отображения данных, чтобы композитные преобразования в пучке и DataFlow SDKs.

 Смежные вопросы

  • Нет связанных вопросов^_^