从PCollections获取列表

我想要一个来自Pcollection的列表值。


PCollection<List<Integer>> lst =    bqT2.apply(ParDo.of(new 

UserId()));  // line 1

List myList = lst.getAll(); // line 2 

但没有“ getAll()”函数


我发现了类似的东西


    List<String> dummylist = Arrays.asList(dummy);

    DoFnTester<String,String> fnTester = DoFnTester.of(new AAA(mapview));

    fnTester.setSideInputInGlobalWindow(mapview, csvlist);

    //dummylines.apply(ParDo.of(fnTester));

    List<String> results = fnTester.processBatch(dummylist);

但是我没有找到使用“ DoFnTester”功能获取列表项的任何方法。


有什么办法可以从PCollection中列出吗?


为了详细说明,我有两个PCollections。


PCollection   p1 = pipeline.apply("",

BigQueryIO.read().fromQuery("SELECT * from myTable where userid in " +  lst + ));

注意:第一个来自第1行


不知道google dataflow是否不支持简单用例。


跃然一笑
浏览 157回答 2
2回答

宝慕林4294392

由于数据流管道的分布式特性,无法直接从PCollection访问数据。不用转换为列表,而是进行“组合”转换,将多个整数的PCollection转换为包含SQL查询中所需的单个列表元素的PCollection,并使用先前的PCollection(列表将BigQuery读取查询链接到另一个转换)整数)。

临摹微笑

apache_beam.transforms.combiners.ToList&nbsp;如果列表适合内存,则可以为您工作。beam.combiners.ToList()&nbsp;是Python版本。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java