apache/beam · error · NotImplementedError

{op!r} is not implemented yet. If support for {op!r} is impo

Error message

{op!r} is not implemented yet. If support for {op!r} is important to you, please let the Beam community know by writing to user@beam.apache.org (see https://beam.apache.org/community/contact-us/) or commenting on {issue_url}

What it means

The frame_base.not_implemented/op decorator installs a stub that raises NotImplementedError with guidance to contact the Beam community or comment/vote on the associated tracking issue (BEAM-xxxxx Jira or GitHub issue). It means the pandas method exists in the API surface but has no Beam implementation yet.

Source

Thrown at sdks/python/apache_beam/dataframe/frame_base.py:424

      f":meth:`{_prettify_pandas_type(base_type)}.{name}` is not yet supported "
      f"in the Beam DataFrame API {reason_data['explanation']}")

  if 'url' in reason_data:
    wrapper.__doc__ += f"\n\n For more information see {reason_data['url']}."

  return wrapper


def not_implemented_method(op, issue='20318', base_type=None):
  """Generate a stub method for ``op`` that simply raises a NotImplementedError.

  For internal use only. No backwards compatibility guarantees."""
  assert base_type is not None, "base_type must be specified"
  issue_url = f"https://issues.apache.org/jira/{issue}." if issue.startswith(
      "BEAM-") else f"https://github.com/apache/beam/issues/{issue}"

  def wrapper(*args, **kwargs):
    raise NotImplementedError(
        f"{op!r} is not implemented yet. "
        f"If support for {op!r} is important to you, please let the Beam "
        "community know by writing to user@beam.apache.org "
        "(see https://beam.apache.org/community/contact-us/) or commenting on "
        f"{issue_url}")

  wrapper.__name__ = op
  wrapper.__doc__ = (
      f":meth:`{_prettify_pandas_type(base_type)}.{op}` is not implemented yet "
      "in the Beam DataFrame API.\n\n"
      f"If support for {op!r} is important to you, please let the Beam "
      "community know by `writing to user@beam.apache.org "
      "<https://beam.apache.org/community/contact-us/>`_ or commenting on "
      f"`{issue} <{issue_url}>`_.")

  return wrapper

View on GitHub (pinned to 12126d8942)

Solutions

  1. Implement the equivalent logic with supported dataframe operations or native Beam transforms (map, GroupBy, beam.CombinePerKey).
  2. Materialize to concrete pandas via to_pcollection + pandas and run the method locally.
  3. Track/vote on the issue URL given in the message and upgrade Beam when support lands.
  4. Contribute an implementation upstream if the operation maps to an existing Beam PTransform.

Example fix

// before
result = df.rolling('2s').mean()
// after
# materialize then use pandas, or approximate with Beam windowing:
result = (pcoll | beam.WindowInto(beam.window.Sessions(2))
               | beam.CombinePerKey(beam.combiners.MeanCombineFn()))
Defensive patterns

Strategy: try-catch

Validate before calling

NOT_IMPLEMENTED_OPS = {'resample', 'ewm', 'plot'}
if op_name in NOT_IMPLEMENTED_OPS:
    use_beam_transform_fallback(op_name)

Try / catch

try:
    result = df.resample('1D').mean()
except NotImplementedError:
    result = (pcoll | beam.WindowInto(beam.window.FixedWindows(86400))
                   | beam.CombinePerKey(beam.combiners.MeanCombineFn()))

Prevention

When it happens

Trigger: Calling any pandas method registered via the not_implemented(op, issue=...) decorator, e.g. certain resample, rolling, or plotting methods, each carrying its tracking issue URL in the message.

Common situations: Using newer pandas surface area not yet ported to Beam; following pandas tutorials verbatim; encountering methods whose implementation is in progress on the referenced Jira/GitHub issue.

Related errors


AI-assisted analysis of apache/beam@12126d8942 (2026-09-13). Data as JSON: /api/errors/6d0e5035d141b26e. Report an issue: GitHub.