2016-03-01 21 views
0

dataflow docs一个MapElements一步,我可以用ParDo.named名谷歌的云计算数据流的管道的每一步:我该如何命名在云中的数据流管道

PCollection<Integer> wordLengths = words.apply(
    ParDo 
    .named("ComputeWordLengths") // the transform name 
    .of(new DoFn<String, Integer>() { 
     @Override 
     public void processElement(ProcessContext c) { 
     c.output(c.element().length()); 
     } 
    })); 

如果我使用MapElements代替,然而,示例在文档中不姓步:

PCollection<Integer> wordLengths = words.apply(
    MapElements.via((String word) -> word.length()) 
     .withOutputType(new TypeDescriptor<Integer>() {}); 

我该如何命名这一步MapElements

我有几个MapElements步骤,我得到象这样的错误:

Mar 01, 2016 1:36:39 PM com.google.cloud.dataflow.sdk.Pipeline applyInternal 
WARNING: Transform MapElements2 does not have a stable unique name. This will prevent updating of pipelines. 

回答

2

,当你运用它可以指定名称。例如:

words.apply("name", MapElements.via(...)) 
// instead of 
words.apply(MapElements.via(...)) 

有关更多详细信息,请参阅named apply method上的JavaDoc。