Apache Spark Very how trending framework to process large amount of data. It's origin to in-memory computation. It's highly recommended to process different type of data like batch, streaming, machine learning and graphical data. Simply its Third generation framework, first time in-memory computation introduced in this framework. In future all bigdata frameworks use this in-memory computation processing.
similarly if you follow Flink ecosystems, Flink processing engine is streaming engine by default. On the top of streaming engine, dataset api and data stream apis work. These apis also core components in Flink. On top of these APIs different type of libraries like table api, gally, flinkml will work. It means the main difference is processing engine, Flink distributed streaming workflow. The power of Flink is Performance optimization. Dataset api using encoder serialization concept, it's optimize performance.
Spark Vs Flink Differences
Spark intentionally implemented for general purpose processing, it's suitable for all bigdata applications.
Spark everything revolving around RDD and DataFrams, these are core apis in Spark 1.6. Flink also process Machine learning and graphical data.
Flink intentionally implemented for unified platform to process streaming, batch data. It's suitable for all Internet of things applications. Especially iterative algorithms, flink highly recommended to optimize performance. It's difficult to process streaming data, but using Flink it's easy to process quickly in optimized way.
Flink Dataset api used to process batch data, so it's suitable to Spark. So that in Spark 2.0 Spark using dataset api to optimize performance.
Unlink apache ignite, both Flink and Spark don't have any storage engine. So by default using HDFS, but both support any storage engine.
As of now many organizations using and giving internal Spark training and many institutes giving spark online training. Very few organizations using Flink so few institutes only providing flink online training.
There is no competition between Spark and Flink, both are implemented for specific applications. In another words, Spark for bigdata applications, Flink for IOT applications, it's future of IT.