I'd like to modify my pipeline to default to run in Dataflow, but still be settable to a different runner on the command line. As far as I can tell there's no way of doing this outside of parsing the command line myself:
- Creating my own extended PipelineOptions class with a different @Default annotation doesn't work, it fails with a message saying @Default must match between PipelineOptions classes. - Calling options.setRunner() doesn't work, as it will override whatever is on the command line, and as far as I can tell there's no way of doing this before parsing the command line. - Calling options.getRunner() and only setting the runner when it's the default makes it so you can no longer use the DirectRunner, as there's no way of telling the difference between an unset option and one set to DirectRunner explicitly. Am I missing something? And if not is this a use-case it makes sense to accommodate? Thanks, Rune
