MMLSpark, originally released last year, is a collection of projects intended to make Spark more useful in many contexts—mainly machine learning, but also in some general-purpose ways.
Some of MMLSpark’s features integrate Spark with Microsoft machine learning offerings such as the Microsoft Cognitive Toolkit (CNTK) and LightGBM, as well as with third-party projects such as OpenCV. Others are about turning Spark into a service or client—for example, allowing Spark computations (including machine learning predictions) to be easily served via the web, or allowing Spark to interact with other web services via HTTP. One function, LIME on Spark, provides annotated results for the predictions served by a given image classifier, an at-a-glance way to determine if the classifier is working right.
MMLSpark wraps all these functions in a set of APIs available for both Scala and Python. The repository contains some quick-start examples, such as using web services in Spark, using OpenCV on Spark for image manipulation, and training a deep image classifier using Azure VMs with GPUs.
MMLSpark itself can be installed on existing Spark clusters as a package, used in the Databricks cloud (or a Databricks appliance on Azure), installed directly in an instance of Python or Anaconda, or run in a Docker container. Integration is also available for the R language, but right now only via a beta auto-generated wrapper.