是否可以顺序读取文本文件?
Is it possible to read a text file sequentially?
我正在使用 beam.io.ReadFromText
处理来自文本文件的数据。
解析文件比按行读取更复杂(有些状态需要逐行携带和更改)。
我可以让 Beam 只用一个处理器读取我的文件吗? (未并行化)这些案例还有其他最佳实践吗?
是的,您可以使用 FileSystems API 自由地自己对文件进行任意处理。这就是 ReadFromText
和所有其他 file-based built-in 转换在幕后所做的事情。
def ParseFile(name):
with FileSystems.open(name) as f:
... Parse the file and yield elements ...
p | beam.Create(['/path/to/file'])
| beam.FlatMapElements(ParseFile)
我正在使用 beam.io.ReadFromText
处理来自文本文件的数据。
解析文件比按行读取更复杂(有些状态需要逐行携带和更改)。
我可以让 Beam 只用一个处理器读取我的文件吗? (未并行化)这些案例还有其他最佳实践吗?
是的,您可以使用 FileSystems API 自由地自己对文件进行任意处理。这就是 ReadFromText
和所有其他 file-based built-in 转换在幕后所做的事情。
def ParseFile(name):
with FileSystems.open(name) as f:
... Parse the file and yield elements ...
p | beam.Create(['/path/to/file'])
| beam.FlatMapElements(ParseFile)