Apache Beam — несколько коллекций P — проблема с преобразованием фрейма данных

Я запускаю приведенный ниже образец в луче apache.

      def transformdf(a, b):
    a["addr"] = "addr-common"
    return a

p = beam.Pipeline(options=pipeline_options)

data1 = [Row(id=1, name="abc"), Row(id=2, name="def"), Row(id=3, name="ghi")]
pcol1 = (p | "Create1" >> beam.Create(data1))

data2 = [Row(addr="addr1"), Row(addr="addr2"), Row(addr="addr3")]
pcol2 = (p | "Create2" >> beam.Create(data2))

pcol = ({"a":pcol1, "b":pcol2} | "TransformedDF" >> DataframeTransform(transformdf))
**# The above line throws issue with duplicate label error**

pcol | "Map" >> beam.Map(lambda row: {"id":row.id, "name":row.name, "addr":row.addr}) | "Print" >> beam.Map(print)

p.run().wait_until_finish()

Код выдает ошибку `

RuntimeError: преобразование с меткой «TransformedDF/BatchElements(pc)» уже существует в конвейере `

Синтаксис и использование кажутся правильными по ссылке https://beam.apache.org/documentation/dsls/dataframes/overview/#embedding-dataframes-in-a-pipeline .

вывод = {"a":pcol1, "b":pcol2"} | DataframeTransform(лямбда/функция)

В настоящее время я использую apache beam 2.35.0. Эта проблема связана с Python SDK?

0 ответов

Другие вопросы по тегам