如何连接两个ValueProvider并将其分配给新的ValueProvider?



我想连接两个ValueProvider<String>的值并将其分配给一个新的ValueProvider<String>我怎样才能做到呢?

ValueProvider<String> A; //if A = Nikhil;
ValueProvider<String> B; //if B = Suthar;
ValueProvider<String> C = A + B; //Then C = Nikhil Suthar;

您可以将不同的提供程序合并为一个,示例如下:https://github.com/GoogleCloudPlatform/DataflowTemplates/blob/main/v1/src/main/java/com/google/cloud/teleport/util/DualInputNestedValueProvider.java.

ValueProvider提供了一个get()方法(参见Apache Beam)。所以你可以这样做:

ValueProvider<String> a; 
ValueProvider<String> b; 
String c = a.get() + b.get();

这个问题经常出现(参见Dataflow)。ValueProvider。如何从几个选项中创建?例如),但是目前在Beam Java SDK中还不支持组合ValueProviders。NestedValueProvider可用于转换运行时参数,但不支持多输入。

你也可以考虑使用flex模板,这样就完全不用担心ValueProviders了。

最新更新