我正在经历并将一些Spark工作转移到Cloud Dataflow / Apache Beam 2.0。
其中一个作业使用pairRdd.sampleByKey(sampleRates)
,其中sampleRates
是一个地图,其中键与pairRdd
中的键匹配,值是应该对该键进行采样的速率。
我发现Beam有一个Sample.fixedSizePerKey(sampleCount)
似乎是最接近的等价物。但是,这些样本是固定数量的(如方法名称所示),但对每个键都是如此。
我已经挖掘了Sample
类,看看它是否可以被修改为接受一个地图并获得每个键不同的计数,但我找不到一种方法来访问PCollection<KV<K,V>
。
如何才能访问PCollection
中PTransform
内的密钥才能执行此操作?