apache-beam - 是否可以顺序读取文本文件?

标签 apache-beam apache-beam-io

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

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

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

最佳答案

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

关于apache-beam - 是否可以顺序读取文本文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48851782/

相关文章:

python - 随着执行的进展+意外的侧面输入行为,数据流管道吞吐量急剧下降

google-cloud-dataflow - apache beam bigtable 可迭代突变

java - 使用java在apche_beam中写入tfrecords

java - Apache Beam 中有状态处理的问题

java - 数据流单元测试

google-cloud-dataflow - GroupByKey 转换的早期结果

python - 排序 apache 光束 wordcount_minimal 输出

python - 如何组合两个结果并将其通过管道传输到 apache-beam 管道中的下一步

google-bigquery - `WriteToBigQuery` 和 `BigQuerySink` 有什么区别

google-cloud-dataflow - 如何在 Java 中将运行时参数传递给 BigtableIO?