按照数据流Creating Templates指南,我创建了这个模板数据流作业的简单示例:
java.util.LinkedHashMap
但是在尝试运行它之后失败并出现以下异常:
removeEldestEntry()
问题是调用public class Runner {
public static void main(final String[] args) {
final PlaygroundPipelineOptions options =
PipelineOptionsFactory.fromArgs(args).withValidation().as(PlaygroundPipelineOptions.class);
options.setRunner(TemplatingDataflowPipelineRunner.class);
options.setZone("***");
options.setNetwork("***");
options.setSubnetwork("***");
options.setStagingLocation("***");
options.setDataflowJobFile("***");
final Pipeline pipeline = Pipeline.create(options);
pipeline
.apply(TextIO.Read.from(options.getInput()).named("TextIO.Read"))
.apply(MapElements.via(new SimpleFunction<String, String>() {
@Override
public String apply(String input) {
return input.toUpperCase();
}
}))
.apply(TextIO.Write.to(options.getOutput()).named("TextIO.Write"));
pipeline.run();
}
private interface PlaygroundPipelineOptions extends DataflowPipelineOptions {
@Description("Input path")
@Validation.Required
ValueProvider<String> getInput();
void setInput(ValueProvider<String> input);
@Description("Output path")
@Validation.Required
ValueProvider<String> getOutput();
void setOutput(ValueProvider<String> input);
}
}
的时候,但是分阶段模板作业的正确方法是什么?没有这些错误?
答案 0 :(得分:0)
这似乎来自TextIO source。该解决方案可能会通过调用TextIO
来禁用withoutValidation()
来源的验证,因为在验证期间文件模式不可用。