arcon_codegen 0.1.4

Code generation for Arcon
{
"id": "normalise",
"target": "x86-64-unknown-linux-gnu",
"system_addr": "127.0.0.1:3008",
"mode": "debug",
"nodes": [
    {
        "id": "node_1",
        "parallelism": 1,
        "kind": {
            "Source": {
                "source_type": {
                    "Scalar": "I64"
                },
                "successors": [
                    {
                        "Local": {
                            "id": "node_2"
                        }
                    }
                ],
                "kind": {
                    "LocalFile": { "path": "/tmp/normalise_source"}
                }
            }
        }
    },
    {
        "id": "node_2",
        "parallelism": 1,
        "kind": {
            "Task": {
                "input_type": {
                    "Scalar": "I64"
                },
                "output_type": {
                    "Scalar": "I64"
                },
                "weld_code": "|x: i64| x < i64(3)",
                "successors": [
                    {
                        "Local": {
                            "id": "node_3"
                        }
                    }
                ],
                "predecessor": "node_1",
                "kind": "Filter"
            }
        }
    },
    {
      "id" : "node_3",
      "parallelism" : 1,
      "kind" : {
        "Window": {
            "channel_strategy" : "Forward",
            "predecessor" : "node2",
            "successors" : [
              {
                "Local" : {
                  "id" : "node_4"
                }
              }
            ],
            "assigner" : {
              "Tumbling" : {
                "length" : 5
              }
            },
            "window_function" : {
              "input_type": {
                  "Scalar": "I64"
              },
              "output_type": {
                  "Vector": {
                    "elem_ty": {
                      "Scalar": "I64"
                    }
                  }
              },
              "builder_type": {
                  "Appender": {
                      "elem_ty": {
                          "Scalar": "I64"
                      }
                  }
              },
              "builder" : "||appender[i64]",
              "udf" : "|e:i64,w:appender[i64]| merge(w,e):appender[i64]",
              "materialiser" : "|e: appender[i64]| let elem = result(e); let sum = result(for(elem, merger[i64, +], |b: merger[i64, +], i: i64, e: i64| merge(b, e))); let count = len(elem); let avg = sum / count; result(for(elem, appender[i64], |b: appender[i64], i: i64, e: i64| merge(b, e / avg)))"
            },
            "time_kind" : "Processing",
            "window_kind" : "All"
          }
        }
    },
    {
        "id": "node_4",
        "parallelism": 1,
        "kind": {
            "Task": {
                "input_type": {
                  "Vector": {
                    "elem_ty": {
                      "Scalar": "I64"
                    }
                  }
                },
                "output_type": {
                    "Scalar": "I64"
                },
                "weld_code": "|x: vec[i64]| let m = merger[i64, +]; result(for(x, m, |b: merger[i64, +], i, e| merge(b, e + i64(3))))",
                "successors": [
                    {
                        "Local": {
                            "id": "node_5"
                        }
                    }
                ],
                "predecessor": "node_3",
                "kind": "Map"
            }
        }
    },
    {
        "id": "node_5",
        "parallelism": 1,
        "kind": {
            "Sink": {
                "sink_type": {
                    "Scalar": "I64"
                },
                "predecessor": "node_4",
                "kind": {
                  "LocalFile": { "path": "/tmp/normalise_sink"}
                }
            }
        }
    }
]
}