跳过 header 行 - Cloud DataFlow 是否可行?

Skipping header rows - is it possible with Cloud DataFlow?

我创建了一个 Pipeline,它从 GCS 中的文件读取、转换它,最后写入 BQ table。该文件包含 header 行(字段)。

有没有什么方法可以像加载时在 BQ 中那样以编程方式设置 "number of header rows to skip"?

这目前是不可能的。听起来这里有两个潜在的请求:

  • 为 BigQuery 导入指定 header 行的存在和跳过行为。
  • 指定 GCS 文本源应跳过 header 行。

https://issues.apache.org/jira/browse/BEAM-123 中跟踪了这方面的未来工作。

同时,您可以在 ParDo 代码中添加一个简单的过滤器以跳过 headers。像这样:

PCollection<X> rows = ...;
PCollection<X> nonHeaders =
   rows.apply(Filter.by(new MatchIfNonHeader()));