我想要一个来自Pcollection的列表值。PCollection<List<Integer>> lst = bqT2.apply(ParDo.of(new UserId())); // line 1List 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是否不支持简单用例。
2 回答
![?](http://img1.sycdn.imooc.com/5333a207000118af02200220-100-100.jpg)
宝慕林4294392
TA贡献2021条经验 获得超8个赞
由于数据流管道的分布式特性,无法直接从PCollection访问数据。
不用转换为列表,而是进行“组合”转换,将多个整数的PCollection转换为包含SQL查询中所需的单个列表元素的PCollection,并使用先前的PCollection(列表将BigQuery读取查询链接到另一个转换)整数)。
![?](http://img1.sycdn.imooc.com/5458477300014deb02200220-100-100.jpg)
临摹微笑
TA贡献1982条经验 获得超2个赞
apache_beam.transforms.combiners.ToList
如果列表适合内存,则可以为您工作。
beam.combiners.ToList()
是Python版本。
添加回答
举报
0/150
提交
取消