IT Framework Big Data

Spark

Znany też jako:Apache Spark

Definicja #

Apache Spark to open source'owy, rozproszony silnik obliczeniowy do przetwarzania danych na dużą skalę. Stworzony na Uniwersytecie Berkeley w 2009 roku i przekazany fundacji Apache, stał się jednym z najważniejszych narzędzi w ekosystemie Big Data.

Spark przetwarza dane przede wszystkim w pamięci operacyjnej (in-memory), co czyni go wielokrotnie szybszym od Hadoopowego MapReduce, który bazował na operacjach dyskowych. Wyniki pośrednie nie muszą być zapisywane na dysk między kolejnymi krokami obliczeń.

Kluczowe komponenty Sparka:

  • Spark Core — fundament: planowanie zadań, zarządzanie pamięcią, API RDD (Resilient Distributed Dataset)
  • Spark SQL — zapytania SQL i DataFrame API na danych ustrukturyzowanych
  • Spark Streaming / Structured Streaming — przetwarzanie strumieniowe danych w czasie rzeczywistym
  • MLlib — biblioteka uczenia maszynowego do budowy modeli na dużych zbiorach danych
  • GraphX — przetwarzanie grafów

Spark działa na klastrach zarządzanych przez YARN, Kubernetes lub własnego cluster managera. Najczęściej używany jest przez PySpark (API Pythona) oraz w środowisku Databricks.

Zastosowania #

Apache Spark stosuje się do:

  • Przetwarzania wsadowego (batch processing) ogromnych zbiorów danych — ETL, transformacje, agregacje na poziomie petabajtów
  • Przetwarzania strumieniowego w czasie rzeczywistym — Structured Streaming do analizy logów, zdarzeń i danych IoT
  • Budowy pipeline'ów uczenia maszynowego na dużych zbiorach danych z użyciem MLlib
  • Analityki danych i eksploracji (EDA) w środowiskach Databricks i Jupyter z PySpark
  • Integracji z ekosystemem Big Data — Hadoop HDFS, Apache Hive, Delta Lake, Apache Kafka

Ścieżka nauki #

Przed nauką Sparka warto dobrze znać SQL oraz podstawy Pythona. Pomocna jest wiedza o podstawach systemów rozproszonych i Big Data.

Zacznij od:

  • Koncepcja RDD, DataFrame i Dataset — różnice i kiedy stosować każde z nich
  • PySpark — tworzenie SparkSession, operacje na DataFrames: select, filter, groupBy, join
  • Spark SQL — zapytania na DataFrames jak w SQL
  • Lokalne środowisko: Docker + Jupyter lub konto próbne w Databricks Community Edition

Następnie poznaj:

  • Optymalizacje: partycjonowanie, broadcast join, cache i persist, Catalyst optimizer
  • Structured Streaming — przetwarzanie strumieni danych
  • Delta Lake — transakcyjny format danych na Sparku
  • Wdrożenie na klastrze: YARN, Kubernetes, Databricks lub chmurowe usługi (EMR, Azure HDInsight)

FAQ #

Czym Spark różni się od Hadoopa MapReduce?
Spark przetwarza dane głównie w pamięci RAM, co czyni go 10–100x szybszym od MapReduce przy iteracyjnych algorytmach. MapReduce zapisuje dane pośrednie na dysk po każdej fazie — Spark unika tego dzięki potokowemu przetwarzaniu w pamięci.
Czy do Sparka trzeba znać Javę?
Nie — najpopularniejszym językiem do pracy ze Sparkiem jest Python (PySpark). Spark obsługuje też Scalę (natywny język Sparka), Javę i R. W data science PySpark jest standardem.
Czym jest Databricks?
Databricks to zarządzana platforma chmurowa oparta na Apache Spark, oferująca notebooki, Delta Lake, MLflow i uproszczone zarządzanie klastrami. Jest najpopularniejszym środowiskiem do pracy ze Sparkiem w produkcji.
Ile zarabia Data Engineer znający Sparka?
Data Engineer specjalizujący się w Sparku i pipeline'ach danych zarabia w Polsce od 14 000 do 25 000 zł brutto. Z doświadczeniem w Databricks i architekturach chmurowych stawki sięgają 28 000 zł.
Kiedy NIE używać Sparka?
Spark ma overhead klastra, więc nie opłaca się dla małych zbiorów danych. Dla danych mieszczących się w pamięci jednej maszyny lepsze są Pandas, DuckDB lub zwykły SQL. Spark to narzędzie dla danych naprawdę dużej skali.
Ostatnia aktualizacja:

Powiązane hasła

Technologie i biblioteki, które najczęściej pojawiają się razem z Spark w ogłoszeniach.

Cały słownik IT

Przeglądaj słownik IT alfabetycznie

Wybierz literę, aby zobaczyć wszystkie hasła zaczynające się od niej.