Как получить значение параметра ValueProvider для добавления RowFilter в BigtableIO.read с использованием Java и Apache Beam - PullRequest
0 голосов
/ 09 октября 2019

Я пытаюсь построить rowFilter, используя объект rowKeyRegexFilter. Как получить строковое значение для параметра ValueProvider для построения rowKeyRegexFilter?

Я изменил шаблон Dataflow для копирования данных из Bigtable в Avro (Java и Apache Beam), я добавил RowFilter до BigtableIO.read, используя rowKeyRegexFilter, мне нужно, чтобы регулярное выражение было параметром времени выполнения.

BigtableIO.Read read =
                BigtableIO.read()
                        .withProjectId(options.getBigtableProjectId())
                        .withInstanceId(options.getBigtableInstanceId())
                        .withTableId(options.getBigtableTableId())
.withRowFilter(RowFilter.newBuilder().setRowKeyRegexFilter(ByteString.copyFromUtf8(options.getRegex().get())).build());

Но я не могу получить значение, и оно показывает мне следующую ошибку:

java.lang.IllegalStateException: значение доступно только во время выполнения, но доступно из контекста не времени выполнения: RuntimeValueProvider {propertyName = regex, default = null}

...