Hello Alexander, Intermediate results are indeed looking promising, also for finally implementing a proper flink-shell for exploratory data analysis. We are also looking at the moment on how to implement a collect() for the flink-streaming scala api that returns a Seq that can be consumed at the client side as a part of Flink-1344 [1]. It looks like intermediate results support will help, basically I would like to be able to initiate a stream endpoint at the client side via the JobClient perhaps, referencing an intermediate result id for example. For streaming this is a feature that Spark doesn't explicitly have (one has to use foreach and collect on a dstream which is quite inefficient) so I guess it would be nice to add.
Paris [1] https://issues.apache.org/jira/browse/FLINK-1344 ________________________________________ From: Alexander Alexandrov [alexander.s.alexand...@gmail.com] Sent: Monday, January 12, 2015 11:42 AM To: dev@flink.apache.org Subject: Gather a distributed dataset Hi there, I wished for intermediate datasets, and Santa Ufuk made my wishes come true (thank you, Santa)! Now that FLINK-986 is in the mainline, I want to ask some practical questions. In Spark, there is a way to put a value from the local driver to the distributed runtime via val x = env.parallelize(...) // expose x to the distributed runtime val y = dataflow(env, x) // y is produced by a dataflow which reads from x and also to get a value from the distributed runtime back to the driver val z = env.collect("y") As far as I know, in Flink we have an equivalent for parallelize val x = env.fromCollection(...) but not for collect. Is this still the case? If yes, how hard would it be to add this feature at the moment? Can you give me some pointers? Regards, Alexander