Hi,

Need to partition by cameraWithCube.getCam() 1st using
parallelCamTasks(passed in as args).

Then within each partition, need to partition again by
cameraWithCube.getTs() but need to make sure each of the 2nd partition by
getTS() runs on the same physical node ?

How do I achieve that ?

DataStream<CameraWithCube> cameraWithCubeDataStream = env
            .addSource(new Source(....))
            .keyBy((cameraWithCube) -> cameraWithCube.getCam() )
            .process(new ProcessFunction<CameraWithCube, CameraWithCube>() {
                public void processElement(CameraWithCube
cameraWithCube, Context context, Collector<CameraWithCube> collector)
throws Exception {
                    //do nothing
                }
            })
            .slotSharingGroup("camSharingGroup")//TODO: how to add
camera# of the partition
            .setParallelism(parallelCamTasks)
            .keyBy((cameraWithCube) -> cameraWithCube.getTs())
            .process(new ProcessFunction<CameraWithCube, CameraWithCube>() {
                public void processElement(CameraWithCube
cameraWithCube, Context context, Collector<CameraWithCube> collector)
throws Exception {
                    //TODO: process code
                }
            })
            .setParallelism(noOfSlotsInEachPhysicalNode)//TODO: how
many parallel tasks within physical node
            .slotSharingGroup("??");//TODO: in same physical node

TIA

Reply via email to