我正在使用python apache_beam版本的数据流。我有大约300个文件,每个文件包含400万个条目。整件事情大约是5Gb,存放在一个gs桶上。
我可以通过读取每个文件轻松生成数组{x_1, ... x_n}
的PCollection,但我现在需要执行的操作就像python zip函数:我想要一个范围从0到n-1的PCollection,其中每个元素i
包含文件中所有x_i
的数组。我为每个元素尝试了yield
(i, element)
然后运行了GroupByKey,但这太慢而且效率低下(由于内存限制,它在本地运行不会,并且需要24小时在云上,我确信如果我愿意,我至少可以加载所有数据集。
如何重新构建管道以干净利落地完成这项工作?
答案 0 :(得分:0)
正如jkff在上面的评论中指出的那样,代码确实是正确的,并且该过程是编程张量流算法的推荐方法。应用于每个元素的DoFn是瓶颈。