Я использую Python SDK Apache Beam.
У меня есть несколько шагов преобразования, и я хочу сделать их многократно используемыми, что указывает на то, что я должен написать собственное составное преобразование, например:
class MyCompositeTransform(beam.PTransform):
def expand(self, pcoll, arg1, kwarg1=u'default'):
result = (pcoll
| 'Step 1' >> beam.Map(lambda f: SomeFn(f, arg1))
| 'Last step' >> beam.Map(lambda f: SomeOtherFn(f, kwarg1))
)
return result
Я хочу предоставить некоторые дополнительные параметры arg1
и kwarg1
, которые необходимы для других преобразований внутри.Но я не знаю, является ли это верным способом и как его использовать в конвейере.
Может кто-нибудь указать мне направление?