在Beam

时间:2018-11-09 20:35:02

标签: google-cloud-dataflow apache-beam

我有2个PCollection,A和B。

我想做这样的事情:

for a in A:
   for b in B:
      a.give(b);

B包含10GB文件中的所有行。

我曾考虑过让每个工作人员自己使用java代码读取文件并写入其自己的磁盘,但是我想尽可能多地使用Beam框架功能,所以该选项目前是不得已的。

>

我试图在光束中做些什么?

1 个答案:

答案 0 :(得分:0)

是的,有多种方法可以执行此操作。您可以选择哪种方法取决于问题的具体/细节:

  • 使用侧面输入。基本上,您是将B文件加载到内存中,然后可以为每个A元素访问该文件。 Link。您可能仍然需要实现一些文件加载​​和元素查找逻辑;
  • 使用Alink)或B库(link)加入CoGroupByKeyJoin
  • 您提到过,如果没有其他方法可以很好地手动管理文件,则不是一个坏选择;

希望这会有所帮助。