我正在开发一个从BigQuery PCollection<TableRow>
获取PCollection的管道,并根据单元格值对其进行过滤。
使用this example中的ParDo过滤它是否更好?或者我应该使用Class Filter<T>
吗?
基本上我希望能够根据personType进行过滤。例如:
if(personType == 'customer') {
then c.output(outputTableRow);
}
有什么区别,我如何处理这个错误,我该怎么办呢?
答案 0 :(得分:1)
他们几乎一样。所有Filter
转换均使用ParDo
实现DoFn
,就像您提到的那样(请参阅Filter.java)。
Filter
转换是一种方便的过滤简写。如果它有效,它可能更简洁。唯一的主要区别是Filter
转换只能 根据输入元素进行过滤。例如,如果您想使用包含应该传递的元素列表的side-input,那么您需要使用ParDo
。如果你只是过滤“这个字段是否等于'客户'”,那么Filter
可能就好了。