gpt4 book ai didi

java - Apache 弗林克 : Why does sortPartition transformation not support KeySelector functions

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:40:10 24 4
gpt4 key购买 nike

我正在使用 Apache Flink 的 DataSet API,发现 sortPartition 转换仅支持位置和表达式键,但不支持键选择器函数。

我使用 java.util.Map 作为位置或表​​达式键不支持的数据类型。如何对 java.util.Map 等数据类型使用 sortPartition 转换?

最佳答案

Flink 的 key selector 函数是语法糖,可以很容易地通过两个 map 函数手动实现。

  • 第一个MapFunction提取关键字段并返回 Tuple2<Key, Input>其中键字段是提取的键,输入字段是原始输入(在您的情况下为 Map)。
  • 结果数据集使用第一个元组字段(索引 0)上的位置键进行排序。
  • 第二个MapFunction解开来自 Tuple2<Key, Input> 的输入字段元组。

整体代码如下:

DataSet<Map> input = ...
DataSet<Tuple2<Long, Map>> keyed = input.map(new KeyExtractMap());
DataSet<Tuple2<Long, Map>> sortedKeyed = keyed.sortPartition(0, Order.ASCENDING);
DataSet<Map> sorted = sortedKeyed.map(new UnwrapMap());

关于java - Apache 弗林克 : Why does sortPartition transformation not support KeySelector functions,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34647109/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com