作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
TextIO.read()
和 AvroIO.read()
(以及其他一些 Beam IO)在读取扩展为大量文件(例如 1M 文件)的文件模式时,默认情况下在当前的 Apache Beam 运行程序中表现不佳。
如何有效地读取如此大量的文件?
最佳答案
当您事先知道正在使用 TextIO
读取的文件模式时或 AvroIO
要扩展成大量文件,可以使用recently added功能 .withHintMatchesManyFiles()
,目前在 TextIO
上实现和 AvroIO
.
例如:
PCollection<String> lines = p.apply(TextIO.read()
.from("gs://some-bucket/many/files/*")
.withHintMatchesManyFiles());
TextIO.readAll()
执行。或
AvroIO.readAll()
,这是
read()
的更灵活和可扩展的版本允许读取
PCollection<String>
文件模式(其中每个
String
是一个文件模式),有同样的警告:如果匹配文件模式的文件总数很少,它们的性能可能比简单的
read()
差。使用在管道构建时指定的文件模式。
关于google-cloud-dataflow - 读取大量文件时,如何提高 TextIO 或 AvroIO 的性能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45362108/
我正在尝试使用自定义 Coder 来处理 Dataflow 中的数据。我所做的是: 将数据从 BigQuery 导出到 avro 文件 使用 avro-tools-1.7.7.jar 从这些文件中的模
TextIO.read()和 AvroIO.read() (以及其他一些 Beam IO)在读取扩展为大量文件(例如 1M 文件)的文件模式时,默认情况下在当前的 Apache Beam 运行程序中表
我是一名优秀的程序员,十分优秀!