Robert Metzger created FLINK-1569:
-------------------------------------
Summary: Object reuse mode is not working with KeySelector
functions.
Key: FLINK-1569
URL: https://issues.apache.org/jira/browse/FLINK-1569
Project: Flink
Issue Type: Bug
Components: Java API
Affects Versions: 0.9
Reporter: Robert Metzger
The following code works correctly when object reuse is switched off.
When switching it on, the results are wrong.
Using a string-based key selection (putting "name") works for both cases.
{code}
@Test
public void testWithAvroGenericSer() throws Exception {
final ExecutionEnvironment env =
ExecutionEnvironment.getExecutionEnvironment();
// env.getConfig().enableObjectReuse();
Path in = new Path(inFile.getAbsoluteFile().toURI());
AvroInputFormat<User> users = new AvroInputFormat<User>(in,
User.class);
DataSet<User> usersDS = env.createInput(users);
DataSet<Tuple2<String, Integer>> res = usersDS.groupBy(new
KeySelector<User, String>() {
@Override
public String getKey(User value) throws Exception {
return String.valueOf(value.getName());
}
}).reduceGroup(new GroupReduceFunction<User, Tuple2<String,
Integer>>() {
@Override
public void reduce(Iterable<User> values,
Collector<Tuple2<String, Integer>> out) throws Exception {
for(User u : values) {
out.collect(new Tuple2<String,
Integer>(u.getName().toString(), 1));
}
}
});
res.writeAsText(resultPath);
res.print();
env.execute("Avro Key selection");
expected = "(Charlie,1)\n(Alyssa,1)\n";
}
{code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)