[ https://issues.apache.org/jira/browse/BEAM-6389?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Beam JIRA Bot updated BEAM-6389: -------------------------------- Priority: P3 (was: P2) > Sources using Metrics.counter fail with 'Can't pickle ... DelegatingCounter' > ---------------------------------------------------------------------------- > > Key: BEAM-6389 > URL: https://issues.apache.org/jira/browse/BEAM-6389 > Project: Beam > Issue Type: Bug > Components: sdk-py-core > Affects Versions: 2.9.0 > Reporter: Matthew Willson > Priority: P3 > Labels: stale-P2 > > This fails under Python 2.7 but works fine under Python 3 – looks like an > easy fix. > I am reading from a beam.io.utils.CountingSource: > {{beam.io.Read(beam_io_utils.CountingSource(NUM_ROWS))}} > This fails under python 2.7 with: > Python exception: Can't pickle <class > 'apache_beam.metrics.metric.DelegatingCounter'>: attribute lookup > apache_beam.metrics.metric.DelegatingCounter failed > Looks like this is because DelegatingCounter is actually an inner class > defined inside apache_beam.metrics.metric.Metric. Under Python 3 pickling can > resolve it under its qualified name > apache_beam.metrics.metric.Metric.DelegatingCounter, but not in Python 2. A > fix would be to move it to a top-level class in that module. > This also applies to other sources which use Metrics.counter. -- This message was sent by Atlassian Jira (v8.3.4#803005)