我使用的是数据流的python apache_beam版本。我有大约300个文件,每个文件有400万个条目。整个事情是关于5Gb,存储在一个gs桶中。
通过读取每个文件,我可以很容易地生成数组{x_1, ... x_n}
的PCollection,但我现在需要执行的操作就像python zip函数:我想要一个范围从0到n-1的PCCollection,其中每个元素i
都包含文件中所有x_i
的数组。我尝试为每个元素使用yield
和(i, element)
,然后运行GroupByKey,但速度太慢,效率太低(由于内存限制,它根本无法在本地运行,而且在云上需要24小时,而如果我愿意,我相信我至少可以加载所有数据集(。
我该如何重组管道以做到这一点?
正如jkff在上面的评论中指出的,代码确实是正确的,该过程是编程tensorflow算法的推荐方法。应用于每个元素的DoFn是瓶颈。