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


Pydoc