代码之家  ›  专栏  ›  技术社区  ›  Zach Moshe

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

  •  2
  • Zach Moshe  · 技术社区  · 6 年前

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

    解析文件比逐行读取更复杂(有些状态需要逐行携带和更改)。

    我可以让Beam只用一个处理器读取我的文件吗?(未并行化)这些情况下还有其他最佳实践吗?

    1 回复  |  直到 6 年前
        1
  •  4
  •   jkff    6 年前

    是的,您可以使用 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)