Apache Spark solves a lot of common issues in data processing and machine learning, so Apache SystemML can make use of these features. For example, Apache Spark supports the unification of SQL, Graph, Stream, and machine learning data processing on top of a common RDD structure.
In other words, it is a general DAG (directed acyclic graph) execution engine supporting lazy evaluation and distributed in-memory caching.