Google cloud dataflow 谷歌数据流中groupby之后的计数

Google cloud dataflow 谷歌数据流中groupby之后的计数,google-cloud-dataflow,apache-beam,Google Cloud Dataflow,Apache Beam,我的谷歌云存储中有以下内容 Advertiser | Event __________________ 100 | Click 101 | Impression 100 | Impression 100 | Impression 101 | Impression 我的管道输出应该是 Advertiser | Count 100 | 3 101 | 2 首先我使用了groupByKey,输出如下 100 Click, Impression, Impression 101 Impr

我的谷歌云存储中有以下内容

Advertiser | Event
__________________
100 | Click

101 | Impression

100 | Impression

100 | Impression

101 | Impression
我的管道输出应该是

Advertiser | Count

100 | 3

101 | 2
首先我使用了groupByKey,输出如下

100 Click, Impression, Impression

101 Impression, Impression

如何从这里开始?

您可能需要使用组合功能,而不是使用
分组键,这是一种组合功能,可在分组键之前和之后进行优化。您的管道可以如下所示:

Python

collection_contents = [(100, 'Click'), 
                       (101, 'Impression'), 
                       (100, 'Impression'), 
                       (100, 'Impression'), 
                       (101, 'Impression']

input_collection = pipeline | beam.Create(collection_contents)

counts = input_collection | Count.PerKey()
这将输出一个包含您要查找的形状的集合。
Count
系列转换可在
apache_beam.transforms.combiners.combiner.Count
模块中找到

Java

Java在
org.apache.beam.sdk.transforms
包中存在相同的转换:

PCollection<KV<Integer, Integer>> resultColl = inputColl.apply(Count.perKey())
PCollection resultColl=inputColl.apply(Count.perKey())

此计数模式已在Apache Beam的“单词计数”示例中描述


找到样品在。计数从第95行开始。

请包含到目前为止的相关代码片段。