Pab*_*blo 3 google-cloud-dataflow apache-beam
我有一个PCollection,我想使用ParDo从中筛选出一些元素。
在这里可以找到一个例子吗?
在Apache Beam Python SDK中,有一个Filter转换,该转换接收一个lambda并过滤掉return的所有元素False。这是一个例子:
filtered_collection = (beam.Create([1, 2, 3, 4, 5])
beam.Filter(lambda x: x % 2 == 0))
Run Code Online (Sandbox Code Playgroud)
在这种情况下,filtered_collection将是PCollection,其中包含2和4。
如果要将其编码为传递给ParDo变换的DoFn,则应执行以下操作:
class FilteringDoFn(beam.DoFn):
def process(self, element):
if element % 2 == 0:
yield element
else:
return # Return nothing
Run Code Online (Sandbox Code Playgroud)
您可以像这样应用它:
filtered_collection = (beam.Create([1, 2, 3, 4, 5])
beam.ParDo(FilteringDoFn()))
Run Code Online (Sandbox Code Playgroud)
在那里,像以前一样,filtered_collection是一个PCollection包含2和4。
| 归档时间: |
|
| 查看次数: |
2617 次 |
| 最近记录: |