Apache Spark ML vs Flink ML
Both Spark and Flink are designed to process data in batch or stream over distributed environment. 


Flink primarily being defined as its ability to process streaming data in real time and being considered as good option for processing low data latency data and high fault tolerance on distributed systems on a large scale.
However, Spark is utilized predominantly in the case of batch processing over distributed environment.
Spark do have streaming API on the other hand but Flink is getting more traction for executing this need.
Flink can be utilized on local JVM,  standalone, Yarn and cloud similarly Spark can be deployed over local, standalone, Yarn, Mesos.


There are many more difference between these two. I found some really interesting answers for your question on Quora, have a look-


Differences between Apache Spark and Apache Flink - 1
Difference between Apache Flink and Apache Spark - 2
Difference between Hadoop, spark, flink


Hope it helps!