Apache Spark، یک چارچوب محاسباتی برای داده های عظیم است. Spark از MapReduce به عنوان موتور اجرای خود، استفاده نمی کند اما بخوبی با هادوپ یکپارچه است. در واقع Spark میتواند در Yarn اجرا شود و با فرمت دادهای هادوپ و HDFS کار کند. Spark بیشتر بخاطر توانایی نگهداشتن مجموعه داده های بین کارها، در حافظه، شناخته می شود. این قابلیت Spark سبب می شود تا سریعتر از جریان کاری MapReduce معادل که مجموعه داده های همیشه از دیسک بار می شوند، عمل کند. دو نوع کاربردی که از مدل پردازشی Spark بهره می برند، الگوریتم های تکرار شونده (که یک تابع بر روی مجموعه دادهای بصورت تکراری تا حصول شرط خروج، اعمال میگردد، و تحلیل تعاملی(که یک کاربر مجموعه ای از پرس و جوهای اکتشافی تک کاره را بر روی مجموعه ای داده ها، اعمال می کنند) است. اسکالا (Scala) یک زبان برنامهنویسی شیءگرا و تابعی است. نام اسکالا آمیزهای است از "scalable" و "language" به معنی زبان مقایسپذیر، از اهداف اصلی ایجاد زبان اسکالا، ارائه زبانی است برای تولید نرمافزار مقیاسپذیر به روشی چابک و سریع، و به دور از مشکلات مرسوم. اسکالا تلفیق زبانهای شیگرا همچون روبی و جاوا با زبانهای تابعی همچون Haskell و Erlang است. از نقطه نظر چابکی و کارایی، عدهای اسکالا را جمع دو دنیای زبانهای پویا (Dynamic-Type) و ایستا (Static-Type) میدانند. در دوره آموزشی Udemy Apache Spark 3 with Scala - Hands On with Big Data با آموزش کار با داده های حجیم در آپاچی اسپارک 3 همراه با اسکالا اشنا خواهید شد.