我想要一個來自Pcollection的列表值。PCollection<List<Integer>> lst = bqT2.apply(ParDo.of(new UserId())); // line 1List myList = lst.getAll(); // line 2 但沒有“ getAll()”函數(shù)我發(fā)現(xiàn)了類似的東西 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 回答

寶慕林4294392
TA貢獻2021條經(jīng)驗 獲得超8個贊
由于數(shù)據(jù)流管道的分布式特性,無法直接從PCollection訪問數(shù)據(jù)。
不用轉換為列表,而是進行“組合”轉換,將多個整數(shù)的PCollection轉換為包含SQL查詢中所需的單個列表元素的PCollection,并使用先前的PCollection(列表將BigQuery讀取查詢鏈接到另一個轉換)整數(shù))。

臨摹微笑
TA貢獻1982條經(jīng)驗 獲得超2個贊
apache_beam.transforms.combiners.ToList
如果列表適合內(nèi)存,則可以為您工作。
beam.combiners.ToList()
是Python版本。
添加回答
舉報
0/150
提交
取消