当前位置: 首页 > 知识库问答 >
问题:

GroupByKey变换中迭代的性质

贺雅健
2023-03-14

我正在通过Java SDK使用谷歌数据流。GroupByKey转换在KV pCollection的“value”部分返回一个Iterable。假设我们对GroupByKey转换的KV结果运行一个ParDo。有谁能告诉我Iterable对象的“性质”吗:Iterable是否保存了一个完全预填充的列表,这意味着假设Iterable中有1000个整数,它在该节点上消耗1000*sizeof(整数)的内存。或者,是“懒惰地”计算可迭代(类似于Python中的生成器),这确保无论可迭代有多大的内存消耗都非常小。

共有1个答案

家经纶
2023-03-14

这些迭代是惰性的,至少在Dataflow runner上运行时,允许它们在每个键中容纳的数据比内存中容纳的要多。在遍历迭代时,键的值会缓慢地加载到内存中。

 类似资料:
  • 当一个对象实现了属性时,我们认为它是可迭代的。 一些内置的类型如Array,Map,Set,String,Int32Array,Uint32Array等都已经实现了各自的Symbol.iterator。 对象上的Symbol.iterator函数负责返回供迭代的值。 for..of 语句 for..of会遍历可迭代的对象,调用对象上的Symbol.iterator属性。 下面是在数组上使用for.

  • 这是这里的后续问题。我正试图在这个实现的基础上实现k-means。它工作得很好,但我想用替换,但我不确定如何替换(我现在不担心性能)。以下是相关的简化代码: 请注意,将给出: 地图(23)- 和: 在地图kmeans.scala:75 相关问题:在ApacheSpark(Scala)中使用reduceByKey。 一些文件: DEF还原ByKey(func:(V, V)0020 V): RDD[(

  • 我有一个(来自XML): 我想在不使用属性名称的情况下迭代属性,例如。 我已尝试按如下方式索引到对象: 但这并没有给我什么,但它也不会导致任何错误。 ############################################################################################################### 不迭代属性。 返回doc,

  • 你好,我经常需要在代码中使用,但我知道这是一个非常繁重的操作。由于我正在努力提高性能,我想知道删除所有调用的方法是否有效。 我使用的是,但是由于这种方法对于大型数据集可能会有很大的问题,所以我想使用这个解决方案: 我所做的不是创建类型对(Int,Int)的RDD,而是创建类型对(Int,list[Int]),所以我的如下所示 你认为有没有更快的方法来达到同样的结果,使用一些其他的方法?谢谢你。

  • 所以我做了一个简单的web应用程序,你输入一些文本,它就会显示在屏幕上,有点像聊天屏幕。 我的Python代码 我的HTML代码 日志和html都显示他们正在发送和接收数据。但是,它不打印的值,而是只打印。我很确定这是因为HTML文件。我肯定这可能是个新手犯的错误,但你知道怎么解决吗?

  • 我需要一个解决方案来提高这种方法的性能。我需要使用LinkedHashMap按顺序插入这些输入,它工作得很好。然而,我不喜欢这个解决方案,因为我有一个列表,每次我都要通过它来检索我想插入到这个地图中的输入。 这是我的密码 我需要一种方法来检索这些对象,而无需重复此列表3次。