All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.google.cloud.dataflow.sdk.runners.inprocess.BundleFactory Maven / Gradle / Ivy

Go to download

Google Cloud Dataflow Java SDK provides a simple, Java-based interface for processing virtually any size data using Google cloud resources. This artifact includes entire Dataflow Java SDK.

There is a newer version: 2.5.0
Show newest version
/*
 * Copyright (C) 2016 Google Inc.
 *
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
 * use this file except in compliance with the License. You may obtain a copy of
 * the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 * License for the specific language governing permissions and limitations under
 * the License.
 */
package com.google.cloud.dataflow.sdk.runners.inprocess;

import com.google.cloud.dataflow.sdk.runners.inprocess.GroupByKeyEvaluatorFactory.InProcessGroupByKeyOnly;
import com.google.cloud.dataflow.sdk.runners.inprocess.InProcessPipelineRunner.CommittedBundle;
import com.google.cloud.dataflow.sdk.runners.inprocess.InProcessPipelineRunner.UncommittedBundle;
import com.google.cloud.dataflow.sdk.transforms.PTransform;
import com.google.cloud.dataflow.sdk.values.PCollection;

/**
 * A factory that creates {@link UncommittedBundle UncommittedBundles}.
 */
interface BundleFactory {
  /**
   * Create an {@link UncommittedBundle} from an empty input. Elements added to the bundle belong to
   * the {@code output} {@link PCollection}.
   */
   UncommittedBundle createRootBundle(PCollection output);

  /**
   * Create an {@link UncommittedBundle} from the specified input. Elements added to the bundle
   * belong to the {@code output} {@link PCollection}.
   */
   UncommittedBundle createBundle(CommittedBundle input, PCollection output);

  /**
   * Create an {@link UncommittedBundle} with the specified keys at the specified step. For use by
   * {@link InProcessGroupByKeyOnly} {@link PTransform PTransforms}. Elements added to the bundle
   * belong to the {@code output} {@link PCollection}.
   */
   UncommittedBundle createKeyedBundle(
      CommittedBundle input, StructuralKey key, PCollection output);
}





© 2015 - 2024 Weber Informatics LLC | Privacy Policy