我想根据参数从创建处置选项中动态选择。在DataflowPipelineOptions中,我通过参数接受ValueProvider中的加载类型。但是,我无法从ValueProvider获取字符串来决定使用什么创建处置选项。
withCreateDisposition(BigQueryIO.Write.CreateDisposition.CREATE_IF_NEEDED)
我希望'CREATE_IF_NEEDED'是动态的。我想用这样的东西替换它。注意以下只是一个伪代码。我在这里寻找解决方案。
create_disp = options.getLoad()
withCreateDisposition(create_disp
您可以传递表示createDisence
的程序参数
程序参数(CREATE_NEVER或CREATE_IF_NEEDED):
--bqCreateDisposition=CREATE_NEVER
在Java
的Option类中,您可以将字段作为Enum传递(在这种情况下,CREATE_IF_NEEDED有一个默认值):
import org.apache.beam.sdk.io.gcp.bigquery.BigQueryIO;
import org.apache.beam.sdk.options.Default;
import org.apache.beam.sdk.options.Default.Enum;
import org.apache.beam.sdk.options.Description;
import org.apache.beam.sdk.options.PipelineOptions;
public interface MyOptions extends PipelineOptions {
@Description("BQ create disposition")
@Default
@Enum("CREATE_IF_NEEDED")
BigQueryIO.Write.CreateDisposition getBqCreateDisposition();
void setBqCreateDisposition(BigQueryIO.Write.CreateDisposition value);
}