2015-08-26 67 views
1

如圖所示here數據流管道由固定的DAG表示。我想知道是否有可能實現一個流水線,直到基於迄今爲止計算出的數據滿足動態評估條件爲止。Dataflow中的迭代處理

下面是一些僞代碼來說明想什麼,我來實現:

PCollection pco = null 
    while(true): 
     pco = pco.apply(someTransform()) 
     if (conditionSatisfied(pco)): 
      break 
    pco.Write() 

回答

3

好像你真的想迭代計算。目前Dataflow不提供對此的支持,但我們知道這是一個非常重要的用例,我們正在尋找正確的API集來表達它。

現在你的解決方法是:

  • 迭代運行整個管道(管道運行,檢查輸出,如果條件不滿足再次運行等)。這對管道設置和拆卸開銷有明顯的不利影響。
  • 通過.apply()無條件地在循環中構建一個硬編碼迭代次數的管道,然後運行整個管道。
  • 兩者的組合,例如運行固定的5次迭代管道,直到你對結果滿意爲止。