是否可以按顺序读取文本文件?

时间:2018-02-18 12:39:40

标签: apache-beam apache-beam-io

我使用beam.io.ReadFromText处理文本文件中的数据。

解析文件比按行读取更复杂(有些状态需要从一行到另一行进行和更改)。

我可以让Beam只用一个处理器读取我的文件吗? (未并行化)这些案例的其他最佳做法是什么?

1 个答案:

答案 0 :(得分:4)

是的,您可以使用FileSystems API自行对文件进行任意处理。这就是ReadFromText以及所有其他基于文件的内置转换所做的事情。

def ParseFile(name):
  with FileSystems.open(name) as f:
    ... Parse the file and yield elements ...

p | beam.Create(['/path/to/file'])
  | beam.FlatMapElements(ParseFile)