gpt4 book ai didi

apache-flink - Flink 在 distinct() 中使用了哪些魔法?代理键是如何生成的?

转载 作者:行者123 更新时间:2023-12-04 11:23:10 25 4
gpt4 key购买 nike

关于生成代理键,第一步是获取不同的键,然后为每个元组构建一个增量键。

所以我使用 Java Set 来获取不同的元素,但它超出了堆空间。
然后,我使用 Flink 的 distinct() 并且它完全有效。

我能问一下有什么区别吗?

另一个相关的问题是,Flink 可以在 mapper 中生成代理键吗?

最佳答案

Flink 执行 distinct()在内部作为 GroupBy后跟一个 ReduceGroup运算符,其中 reduce 运算符仅返回组的第一个元素。
GroupBy是通过对数据进行排序来完成的。排序是在二进制数据表示上完成的,如果可能的话在内存中,但如果没有足够的内存可用,则可能会溢出到磁盘。此 blog post对此提供了一些见解。 GroupBySort在 Flink 中是内存安全的,不会因 OutOfMemoryError 而失败.

您还可以使用 DataSet.distinct(KeySelector ks) 对自定义键执行不同的操作。 .键选择器基本上是一个 MapFunction生成自定义 key 。

关于apache-flink - Flink 在 distinct() 中使用了哪些魔法?代理键是如何生成的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30526168/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com