我有一个PCollection,我想用ParDo过滤掉它中的一些元素。
有没有可以找到这个例子的地方?
答案 0 :(得分:6)
在Apache Beam Python SDK中,有一个Filter变换接收lambda,并过滤掉所有返回False
的元素。这是一个例子:
filtered_collection = (beam.Create([1, 2, 3, 4, 5])
beam.Filter(lambda x: x % 2 == 0))
在这种情况下,filtered_collection
将是包含PCollection
和2
的{{1}}。
如果你想将它编码为传递给ParDo变换的DoFn,你可以这样做:
4
你可以这样申请:
class FilteringDoFn(beam.DoFn):
def process(self, element):
if element % 2 == 0:
yield element
else:
return # Return nothing
与之前一样,filtered_collection = (beam.Create([1, 2, 3, 4, 5])
beam.ParDo(FilteringDoFn()))
是filtered_collection
,其中包含PCollection
和2
。