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?