You are viewing a plain text version of this content. The canonical link for it is here.
Posted to github@beam.apache.org by GitBox <gi...@apache.org> on 2022/06/04 18:22:00 UTC
[GitHub] [beam] damccorm opened a new issue, #20636: Value Provider functionality broken in python sdk
damccorm opened a new issue, #20636:
URL: https://github.com/apache/beam/issues/20636
Whether using a custom function or an IO connector (test with `WriteToBigQuery`), the dataflow job complains that the runtime value provider `get()` is being called from a non-runtime context:
```
import argparse
import logging
import apache_beam as beam
from apache_beam.options.pipeline_options
import PipelineOptions
class ExampleDoF(beam.DoFn):
def __init__(self, value_provider):
self.value_provider = value_provider
def process(self, el):
logging.info(f'el:
{el}')
logging.info(f'value provider: {self.value_provider.get()}')
yield el
class
UserOptions(PipelineOptions):
@classmethod
def _add_argparse_args(cls, parser):
parser.add_value_provider_argument('--value_provider',
type=int)
parser = argparse.ArgumentParser()
known_args, pipeline_args = parser.parse_known_args()
pipeline_options
= PipelineOptions(pipeline_args)
user_options = pipeline_options.view_as(UserOptions)
with beam.Pipeline(options=pipeline_options)
as pipeline:
results = (
pipeline
| beam.Create(['element'])
| beam.ParDo(ExampleDoF(user_options.value_provider))
)
```
Imported from Jira [BEAM-10872](https://issues.apache.org/jira/browse/BEAM-10872). Original Jira may contain additional context.
Reported by: jkarimi.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: github-unsubscribe@beam.apache.org.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org