我想要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数据流是否不支持简单用例。
答案 0 :(得分:1)
由于数据流管道的分布式特性,无法直接从PCollection访问数据。
执行“组合”转换,而不是转换为列表,而是将多个整数的PCollection转换为包含SQL查询中所需的单个列表元素的PCollection,并使用以前的PCollection与BigQuery读取查询链接到另一个转换(整数列表)。
答案 1 :(得分:0)
apache_beam.transforms.combiners.ToList
可以为您工作。
beam.combiners.ToList()
是Python版本。