高性能网站建设在线阅读,陕西恒业建设集团网站,正规的h5网站,那里做网站最好说明#xff1a;一般用户常用的是GenericRowData。flink内部则多使用BinaryRowData。
方法一、循环解决(不推荐)#xff1a;
代码较为复杂需要根据RowType获取到内部fields的logicalType#xff0c;再使用RowData.createFieldGetter方法创建fieldGetters。 public static …说明一般用户常用的是GenericRowData。flink内部则多使用BinaryRowData。
方法一、循环解决(不推荐)
代码较为复杂需要根据RowType获取到内部fields的logicalType再使用RowData.createFieldGetter方法创建fieldGetters。 public static void copyRowData(RowData input, GenericRowData output, ListRowData.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方法
public RowDataSerializer(RowType rowType) {
...
}public RowData copy(RowData from) {
...
}