Apache flink 如何在每个分区内使用自定义分区器进行分区?

Apache flink 如何在每个分区内使用自定义分区器进行分区?,apache-flink,Apache Flink,我想使用自定义分区器对数据进行分区,并将数据集与其自身交叉,以在每个分区内生成数据的笛卡尔积 DataSet<Tuple2<Integer, String>> partitionedData = data.partitionCustom(new MyPartitioner(), 0); DataSet<Tuple2<Tuple2<Integer, String>, Tuple2<Integer, String

我想使用自定义分区器对数据进行分区,并将数据集与其自身交叉,以在每个分区内生成数据的笛卡尔积

DataSet<Tuple2<Integer, String>> partitionedData =
                data.partitionCustom(new MyPartitioner(), 0);

DataSet<Tuple2<Tuple2<Integer, String>, Tuple2<Integer, String>>> crossedData = data.cross(data);
下面的代码在所有数据集上运行交叉运算符,但我正在寻找一种解决方案,以便在每个分区和分区内都这样做

DataSet<Tuple2<Integer, String>> partitionedData =
                data.partitionCustom(new MyPartitioner(), 0);

DataSet<Tuple2<Tuple2<Integer, String>, Tuple2<Integer, String>>> crossedData = data.cross(data);
数据集分区数据=
data.partitionCustom(新的MyPartitioner(),0);
DataSet crossedData=data.cross(数据);

cross
将始终在完整的
数据集上计算交叉运算。您可以在
mapPartition
操作中计算部分交叉,在该操作中,您可以自己执行交叉,也可以为每个元素分配一个特定于分区的标识符,并在此字段上进行连接。
cross
将始终计算整个
数据集的交叉操作。您可以在
mapPartition
操作中计算部分交叉,在该操作中,您可以自己执行交叉,或者为每个元素分配一个特定于分区的标识符,并在该字段上联接。