java - Flink,如何使用可变对象(IntValue,LongValue,...)?
问题描述
假设我有 2 个平面图实现,
public class Foobar implements FlatMapFunction<Foo, Tuple2<String, Bar>> {
@Override
public void flatMap(Foo in, Collector<Tuple2<String, Bar>> out) throws Exception {
String id = in.getId();
if(!"bad_id".equals(id)) {
Bar bar = ...; // some code to build Bar instance from Foo
out.collect(new Tuple2<>(id, bar));
}
}}
public class Foobar implements FlatMapFunction<Foo, Tuple2<String, Bar>> {
private Bar bar;
private Tuple2<String, Bar> t2 = new Tuple2<>();
private StringValue id = new StringValue();
@Override
public void flatMap(Foo in, Collector<Tuple2<String, Bar>> out) throws Exception {
id.setValue(in.getId());
if(!"bad_id".equals(id.getValue())) {
bar = ...; // some code to build Bar instance from Foo
t2.f0 = id.getValue();
t2.f1 = bar;
out.collect(t2);
}
}}
- 从性能的角度来看,第二个更好吗?
- 这是使用StringValue的正确方法吗?
- 是否还需要将返回类型更改为 Tuple2<StringValue, Bar>,而不是 Tuple2<String, Bar>?
解决方案
推荐阅读
- r - Groupwise rollsum:如何为分区数据添加 cumsum(窗口?)
- python - Tensorflow 会话 - ValueError:GraphDef 不能大于 2GB
- python - Eve (Flask) 应用程序没有响应 uWSGI 的内容
- python - 函数要求输入两次,而它应该只输入一次
- java - BinarySearchTree isBalanced 方法不起作用
- php - 致命错误同时:sudo pecl install mongodb
- select - 如何在值数组中使用 jq 进行选择?
- .htaccess - mod_rewrite .htaccess 重写到子目录而不更改 uri
- javascript - 我想将路径传递给对象
- java - 将一个对象的 ArrayList 的内容传输到另一个对象