You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@beam.apache.org by "Kenneth Knowles (JIRA)" <ji...@apache.org> on 2017/11/16 19:58:00 UTC

[jira] [Created] (BEAM-3204) Coders only should have a FunctionSpec, not an SdkFunctionSpec

Kenneth Knowles created BEAM-3204:
-------------------------------------

             Summary: Coders only should have a FunctionSpec, not an SdkFunctionSpec
                 Key: BEAM-3204
                 URL: https://issues.apache.org/jira/browse/BEAM-3204
             Project: Beam
          Issue Type: Improvement
          Components: beam-model
            Reporter: Kenneth Knowles
            Assignee: Henning Rohde


We added environments to coders to account for "custom" coders where it is only really possible for one SDK to understand them, like this:

{code}
Coder {
  spec: SdkFunctionSpec {
    environment: "java_sdk_docker_container",
    spec: FunctionSpec {
      urn: "beam:coder:java_custom_coder",
      payload: <serialized java bytes>
    }
  }
}
{code}

But a coder must be understood by both the producer of a PCollection and its consumers. A coder is not the same as other UDF, though these are user-defined.

A pipeline where either the producer or consumer cannot handle the coder is invalid, and we will have to build our cross-language APIs to prevent construction of such a pipeline. So we can drop the environment.

I think there are some folks who want to reserve the ability to add an environment later, perhaps, to not pain ourselves into a corner. In this case, we can just add a field to Coder.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)