Spark Streaming allows real-time processing of live data streams. It works by dividing the streaming data into batches called DStreams, which are then processed using Spark's batch API. Common sources of data include Kafka, files, and sockets. Transformations like map, reduce, join and window can be applied to DStreams. Stateful operations like updateStateByKey allow updating persistent state. Checkpointing to reliable storage like HDFS provides fault-tolerance.