【flink】RowData copy/clone方式

说明:一般用户常用的是GenericRowData。flink内部则多使用BinaryRowData

方法一、循环解决(不推荐):

代码较为复杂需要根据RowType获取到内部fields的logicalType,再使用RowData.createFieldGetter方法创建fieldGetters

java 复制代码
    public static void copyRowData(RowData input, GenericRowData output, List<RowData.FieldGetter> fieldGetters) {
        for (int i = 0; i < input.getArity() && i < output.getArity(); i++) {
            if (input instanceof GenericRowData) {
                output.setField(i, ((GenericRowData) input).getField(i));
            } else {
                Preconditions.checkArgument(fieldGetters != null);
                Object value = fieldGetters.get(i).getFieldOrNull(input);
                output.setField(i, value);
            }
        }
    }

方法二、使用RowDataSerializer(推荐)

使用RowDataSerializer.copy方法

java 复制代码
public RowDataSerializer(RowType rowType) {
...
}

public RowData copy(RowData from) {
...
}
相关推荐
旺仔Sec4 小时前
2025年安徽省职业院校技能大赛(中职组)大数据应用与服务赛项样题
大数据
韩立学长4 小时前
【开题答辩实录分享】以《自助游网站的设计与实现》为例进行选题答辩实录分享
java·mysql·spring
ss2734 小时前
线程池:任务队列、工作线程与生命周期管理
java·后端
不像程序员的程序媛4 小时前
Spring的cacheEvict
java·后端·spring
SAP小崔说事儿5 小时前
在数据库中将字符串拆分成表单(SQL和HANA版本)
java·数据库·sql·sap·hana·字符串拆分·无锡sap
凌云若寒5 小时前
半导体代加工企业标签模板痛点的全景式解决方案
java
Jackeyzhe5 小时前
Flink源码阅读:如何生成ExecutionGraph
flink
ctrigger5 小时前
中级统计师《统计基础理论及相关》考试大纲
大数据
shoubepatien5 小时前
JAVA -- 11
java·后端·intellij-idea
利剑 -~5 小时前
jdk源码解析
java·开发语言