簡體   English   中英

Java如何在Apache Beam的KV實例中區分兩個鍵?

[英]How does java differentiate two keys in KV instance in apache beam?

apache梁的版本是2.15.0

在此代碼中 ,將Airport類用作KV實例的Key,最后,為每個Airport實例計算均值

c.output(KV.of(stats.airport, stats.timestamp));

但是, apache Beam如何在內部比較兩個鍵並在兩個實例相同或不同的情況下返回? 如果所有類成員都具有相同的值,是否將兩個實例視為相同? 文件沒有提及兩個鍵的比較。

如果有人可以幫助我加深理解,我將不勝感激。

這實際上在GroupByKey轉換文檔中進行了說明,這是在GroupByKey進行的Mean聚合操作:

不是通過常規Java Object.equalsjava.lang.Object )而是通過首先使用輸入PCollection的鍵的Coder對每個鍵進行Coder ,然后比較已編碼的字節來比較類型K兩個鍵是否相等。 這承認了有效的並行評估。 請注意,這要求鍵的Coder是確定性的(請參閱Coder.verifyDeterministic() )。 如果關鍵Coder器不是確定性的,則在管道構建時會引發異常。

請注意, Mean使用Combine.PerKey ,這是GroupByKey + Combine.GroupedValues的“簡寫”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM