Apache Spark is a distributed programming framework for big data processing based on functional programming. It implements distributed Scala collections and is built on top of the Akka actor framework. Resilient Distributed Datasets (RDDs) store data in partitions across several computers and record lineage to allow recomputing partitions if servers fail. Spark supports transformations like map, filter, and reduce and actions like collect, count, and save that trigger computation.