AWS Lambda vs Apache Spark: What are the differences?
What is AWS Lambda? Automatically run code in response to modifications to objects in Amazon S3 buckets, messages in Kinesis streams, or updates in DynamoDB. AWS Lambda is a compute service that runs your code in response to events and automatically manages the underlying compute resources for you. You can use AWS Lambda to extend other AWS services with custom logic, or create your own back-end services that operate at AWS scale, performance, and security.
What is Apache Spark? Fast and general engine for large-scale data processing. Spark is a fast and general processing engine compatible with Hadoop data. It can run in Hadoop clusters through YARN or Spark's standalone mode, and it can process data in HDFS, HBase, Cassandra, Hive, and any Hadoop InputFormat. It is designed to perform both batch processing (similar to MapReduce) and new workloads like streaming, interactive queries, and machine learning.
AWS Lambda belongs to "Serverless / Task Processing" category of the tech stack, while Apache Spark can be primarily classified under "Big Data Tools".
Some of the features offered by AWS Lambda are:
- Extend other AWS services with custom logic
- Build custom back-end services
- Completely Automated Administration
On the other hand, Apache Spark provides the following key features:
- Run programs up to 100x faster than Hadoop MapReduce in memory, or 10x faster on disk
- Write applications quickly in Java, Scala or Python
- Combine SQL, streaming, and complex analytics
"No infrastructure" is the top reason why over 121 developers like AWS Lambda, while over 45 developers mention "Open-source" as the leading cause for choosing Apache Spark.
Apache Spark is an open source tool with 22.5K GitHub stars and 19.4K GitHub forks. Here's a link to Apache Spark's open source repository on GitHub.
According to the StackShare community, AWS Lambda has a broader approval, being mentioned in 1022 company stacks & 612 developers stacks; compared to Apache Spark, which is listed in 266 company stacks and 112 developer stacks.