1

Ich versuche die neue Funktion display data in Dataflow, um zusätzliche Details in der Google Cloud Dataflow-Benutzeroberfläche anzuzeigen. Die Anzeigedaten für benutzerdefinierte PTransform werden jedoch nicht angezeigt. In meiner Datenfluß-Pipeline, habe ich eine Transformation wie:Datenflussanzeige Daten fehlen in Composite-Transformation

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")); 
    } 
}); 

Wenn ich den Datenfluß-Job ausführen, wird die Benutzeroberfläche nicht die foo=bar Anzeigedaten zu zeigen scheint.

Antwort

1

Anzeigedaten werden unter composite transforms nicht unterstützt. Stattdessen können Sie Anzeigedaten an jede benutzerdefinierte Funktion anhängen, die von Ihrer Transformation ausgeführt wird. Zum Beispiel, wenn eine der inneren Transformationen in dem obigen Verbund ein ParDo verwendet, können Sie die Anzeigedatum Methoden neu schreiben wie:

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")); 
     }    
     })); 
    } 
}); 

Es a JIRA issue ist Anzeigedaten Funktionalität Composite-Transformationen in Breite zu erweitern und Datenfluss SDKs.