2017-08-29 52 views
0

我知道當我們實現一個ParDo變換時,我們從數據中獲取單個元素(基本上由「\ n」分隔)。但是如果我有一個在我的文件中佔據兩行的元素呢?我可以運用自己的條件來挑選元素嗎?或者是否總是需要在一行中包含元素?processElement()中的拾取元素 - Apache Beam

回答

1

讀取文本文件由TextIO控制,而不是由ParDo控制 - 我想這就是你的意思。實際上,現在TextIO將文件分成每行1個元素,但是正在進行更改。您可以按照https://issues.apache.org/jira/browse/BEAM-2802的工作。

如果您更多地瞭解了您的文件格式,以確保它在範圍內,那麼對於該工作將是有用的。

+0

嗨@jkff ...我完全忘了這個...是的,所以我們有一個.sql文件,自然有查詢佔用多行。當我試圖在我的數據流程序中讀取它們時,生成的PCollection中的查詢不是按照您的答覆中所述的順序排列 - https://stackoverflow.com/questions/45920895/read-a-file-從-GCS合apache的光束。所以基本上我們試圖使用數據流順序執行該文件中的所有查詢。 – rish0097

+0

如果您按順序執行查詢,即不是並行執行查詢,爲什麼需要Dataflow? :) – jkff

+0

你是對的順序執行不需要數據流,但是我們有一個批量作業,它涉及很多步驟,按順序執行查詢是該作業中的一個步驟。所以也必須包括這一點。 – rish0097

相關問題