CombineValues
Pydoc |
将元素集合中的键值集合中的可迭代值组合在一起。
在 Beam 编程指南 中查看更多信息。
示例
在以下示例中,我们创建了一个具有 PCollection
的管道,其中包含产品。然后,我们以多种方式应用 CombineValues
来组合 PCollection
中的键值。
CombineValues
接受一个函数,该函数以 iterable
元素作为输入,并将它们组合在一起以返回单个元素。CombineValues
期望一个键值的 PCollection
元素,其中值为要组合的元素的 iterable
。
示例 1:使用预定义函数进行组合
我们使用函数 sum
,它接受 iterable
数字并将其加在一起。
示例 2:使用函数进行组合
我们希望总和限制在最大值内,因此我们使用 饱和运算。
我们定义一个函数 saturated_sum
,它接受 iterable
数字并将它们加在一起,直到预定义的最大数字。
示例 3:使用 lambda 函数进行组合
我们还可以使用 lambda 函数来简化 示例 2。
示例 4:使用多个参数进行组合
您可以将具有多个参数的函数传递给 CombineValues
。它们作为附加的位置参数或关键字参数传递给函数。
在这个示例中,lambda 函数以 values
和 max_value
作为参数。
示例 5:使用 CombineFn
进行组合
组合元素的更一般方法,也是最灵活的方法,是使用继承自 CombineFn
的类。
CombineFn.create_accumulator()
:这将创建一个空累加器。例如,总和的空累加器将是0
,而乘积(乘法)的空累加器将是1
。CombineFn.add_input()
:每元素调用一次。它接受一个累加器和一个输入元素,将它们组合在一起并返回更新后的累加器。CombineFn.merge_accumulators()
:多个累加器可以在并行中处理,因此此函数有助于将它们合并到一个累加器中。CombineFn.extract_output()
:它允许在提取结果之前进行其他计算。
相关转换
您可以使用以下组合器转换
Pydoc |
最后更新于 2024/10/31
您是否找到了所需的一切?
它是否都很有用且清晰?您想更改任何内容吗?请告诉我们!