Google cloud dataflow 数据流:如何从另一个管道输出的现有PCollection创建管道

Google cloud dataflow 数据流:如何从另一个管道输出的现有PCollection创建管道,google-cloud-dataflow,apache-beam-io,Google Cloud Dataflow,Apache Beam Io,我正在尝试将管道拆分为许多较小的管道,以便它们执行得更快。我正在对Google云存储Blob的PCollection(PCollection)进行分区,以便获得一个 PCollectionList<Blob> collectionList 但是我还没有找到任何关于从已经存在的PCollection创建初始PCollection的文档,如果有人能为我指出正确的方向,我将非常感激。 谢谢 您应该查看转换,将一个PCollection拆分为N个较小的集合。您可以提供一个Parti

我正在尝试将管道拆分为许多较小的管道,以便它们执行得更快。我正在对Google云存储Blob的PCollection(PCollection)进行分区,以便获得一个

    PCollectionList<Blob> collectionList
但是我还没有找到任何关于从已经存在的PCollection创建初始PCollection的文档,如果有人能为我指出正确的方向,我将非常感激。 谢谢

您应该查看转换,将一个PCollection拆分为N个较小的集合。您可以提供一个PartitionFn来定义拆分的方式。您可以在下面的示例中找到:

//提供一个具有所需结果分区数的int值,以及一个表示分区函数的PartitionFn。
//在本例中,我们在线中定义PartitionFn。
//返回一个PCollectionList,其中包含作为单个PCollection对象的每个结果分区。
PCollection学生=。。。;
//按百分比将学生分成10个分区:
PCollectionList studentsByPercentile=
学生申请(第10部分,新的第fn()部分){
公共整数分区(学生,整数分区){
return student.getPercentile()//0..99
*单位/100;
}}));
//您可以使用get方法从PCollectionList中提取每个分区,如下所示:
PCollection FortitethPercentile=学生人数百分比.get(4);
    Pipeline p2 = Pipeline.create(collectionList.get(0));
    .apply(stuff)
    .apply(stuff)

    Pipeline p3 = Pipeline.create(collectionList.get(1));
    .apply(stuff)
    .apply(stuff)