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
您是否找到了所需的一切?
它是否都很有用且清晰?您想更改任何内容吗?请告诉我们!


Pydoc