【问题标题】:Determine if a pcollection is empty or not确定 pcollection 是否为空
【发布时间】:2017-08-28 03:25:26
【问题描述】:

如何在 apache beam(2.1.0) 中写入文本文件之前检查 pcollection 是否为空?

我在这里要做的是将文件分解为指定数量的 pcollections,作为通过 ValueProvider 提供给管道的参数。由于此 ValueProvider 在管道构建时不可用,我声明了一个不错的 26 号(字母总数,这是用户可以输入的最大数量),以使其可用于.withOuputTags()。所以我得到了 26 个元组标签,在写入文本文件之前我必须从中检索 pcollections。所以在这里,只有少数用户输入的标签会被填充,其余的都是空的。因此,在我应用 TextIO.write() 之前,我想忽略一些标签返回的空 pcollections。

【问题讨论】:

    标签: google-cloud-dataflow apache-beam


    【解决方案1】:

    实际上您似乎想将一个集合写入多个文件集,其中一些文件集可能是空的。正确的方法是使用DynamicDestinations API - 请参阅TextIO.write().to(DynamicDestinations),它将在 Beam 2.2.0 中可用,应该在接下来的几周内被删除。同时,如果您想使用它,您可以自己构建 Beam at HEAD 的快照。

    【讨论】:

    • 谢谢!如果只是几个星期的问题,我会等待。
    • 您能否详细说明如何处理空突变问题。我有一个场景,我根据验证将来自 PubSub 的记录放入 BigTable 或 GCS。由于 2 个输出之一为空,我被空指针击中。
    猜你喜欢
    • 2022-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-12
    相关资源
    最近更新 更多