Narzędzia

Python

W terminalu wpisz:

python

Jeśli komenda nie została odnaleziona, spróbuj:

python3

Zwróć uwagę, aby Twoja wersja nie była niższa niż 3.10. Aby wyjść z powłoki Pythona, użyj funkcji exit():

Python 3.13.2 (main, Feb  4 2025, 14:51:09) [Clang 16.0.0 (clang-1600.0.26.6)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()

Nowe środowisko Pythona

python3 -m venv <nazwa_srodowiska>

# Linux / macOS
source <nazwa_srodowiska>/bin/activate

# Windows
# <nazwa_srodowiska>\Scripts\activate

(venv)$

Szybka instalacja podstawowych bibliotek i JupyterLab:

pip install --no-cache --upgrade pip setuptools
pip install jupyterlab numpy pandas matplotlib scipy

# jeśli masz plik requirements.txt
pip install -r requirements.txt

# uruchom JupyterLab
jupyter lab

W przeglądarce internetowej wpisz: localhost:8888

Po ponownym uruchomieniu komputera przejdź do katalogu, w którym utworzyłeś środowisko, aktywuj je i uruchom JupyterLab:

source <nazwa_srodowiska>/bin/activate
jupyter lab

Naucz się Pythona

Kurs podstaw Pythona — Tomas Beuzen — polecam.

Utwórz konto na Kaggle, przejdź do zakładki Courses i przerób cały moduł Pythona. Zawiera on:

  • wyrażenia i zmienne
  • funkcje
  • warunki i flow programu
  • listy
  • pętle
  • stringi i słowniki
  • dodawanie i używanie zewnętrznych bibliotek

Git

Tekst na podstawie strony jak korzystać z serwisu GitHub.

Pracując nad projektem (samodzielnie lub w zespole), często potrzebujesz sprawdzić, jakie zmiany, kiedy i przez kogo zostały wprowadzone. Do tego służy system kontroli wersjiGit.

Git możesz pobrać i zainstalować na dowolnym systemie operacyjnym. Najczęściej jednak korzysta się z serwisów hostujących repozytoria Git. Jednym z najbardziej rozpoznawanych jest GitHub, dzięki któremu możesz korzystać z systemu Git bezpośrednio z poziomu przeglądarki.

W darmowej wersji serwisu GitHub możesz przechowywać pliki zarówno w publicznych, jak i prywatnych repozytoriach.

git --version

Struktura GitHuba

Na najwyższym poziomie znajdują się konta indywidualne (np. github.com/sebkaz) bądź organizacje. Użytkownicy mogą tworzyć repozytoria publiczne (public) lub prywatne (private).

Jeden plik w repozytorium nie powinien przekraczać 100 MB.

Repo (skrót od repozytorium) tworzymy za pomocą przycisku Create a new repository. Każde repo powinno mieć swoją unikalną nazwę.

Gałęzie (branches)

Główna gałąź repozytorium domyślnie nosi nazwę main (dawniej master).

Najważniejsze polecenia

Ściąganie repozytorium z sieci:

git clone https://adres_repo.git

Możesz też pobrać repozytorium z GitHuba jako plik ZIP.

Tworzenie repozytorium dla lokalnego katalogu:

# tworzenie nowego katalogu
mkdir datamining
# przejście do katalogu
cd datamining
# inicjalizacja repozytorium
git init
# dodajmy plik
echo "Info" >> README.md

Połączenie lokalnego repozytorium z kontem na GitHubie:

git remote add origin https://github.com/<twojGit>/nazwa.git

Obsługa w 3 krokach:

# sprawdź zmiany
git status
# 1. dodaj wszystkie zmiany
git add .
# 2. zapisz bieżący stan wraz z opisem
git commit -m "opis zmian"
# 3. wyślij na serwer
git push origin main

Warto obejrzeć kurs Git na YouTube.

Ciekawe i proste wprowadzenie można znaleźć tutaj.

Docker

W celu pobrania Dockera przejdź do oficjalnej strony.

Jeśli wszystko zainstalowało się prawidłowo, wykonaj następujące polecenia:

  1. Sprawdź zainstalowaną wersję:
docker --version
  1. Ściągnij i uruchom obraz testowy:
docker run hello-world
  1. Przegląd ściągniętych obrazów:
docker images
  1. Przegląd uruchomionych kontenerów:
docker ps
docker ps -a
  1. Zatrzymanie uruchomionego kontenera:
docker stop <CONTAINER_ID>
  1. Usunięcie kontenera:
docker rm -f <CONTAINER_ID>

Docker Compose

Docker Compose pozwala definiować i uruchamiać wielokontenerowe środowiska za pomocą jednego pliku docker-compose.yml. Na zajęciach będziemy go używać do stawiania środowisk z Kafką, Sparkiem i innymi usługami.

Sprawdź, czy masz zainstalowany Docker Compose:

docker compose version

Przykładowy plik docker-compose.yml:

services:
  zookeeper:
    image: confluentinc/cp-zookeeper:7.6.0
    environment:
      ZOOKEEPER_CLIENT_PORT: 2181

  kafka:
    image: confluentinc/cp-kafka:7.6.0
    depends_on:
      - zookeeper
    ports:
      - "9092:9092"
    environment:
      KAFKA_BROKER_ID: 1
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
      KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9092
      KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1

Uruchomienie i zatrzymanie:

# uruchom wszystkie usługi w tle
docker compose up -d
# sprawdź działające kontenery
docker compose ps
# zatrzymaj i usuń kontenery
docker compose down

Apache Kafka

Apache Kafka to rozproszona platforma do strumieniowego przetwarzania danych. Umożliwia publikowanie, subskrybowanie i przetwarzanie strumieni rekordów w czasie rzeczywistym.

Na zajęciach będziemy uruchamiać Kafkę za pomocą Docker Compose (patrz wyżej).

Podstawowe pojęcia:

  • Producent (Producer) — wysyła dane (wiadomości) do Kafki.
  • Konsument (Consumer) — odczytuje dane z Kafki.
  • Temat (Topic) — kategoria, do której trafiają wiadomości.
  • Partycja (Partition) — podział tematu umożliwiający równoległe przetwarzanie.
  • Broker — serwer Kafki przechowujący dane.

Szybki test Kafki z Dockera:

# utwórz temat
docker compose exec kafka kafka-topics --create \
  --topic test --bootstrap-server localhost:9092 \
  --partitions 1 --replication-factor 1

# wyślij wiadomość (producent)
docker compose exec kafka kafka-console-producer \
  --topic test --bootstrap-server localhost:9092

# odczytaj wiadomości (konsument) — w nowym terminalu
docker compose exec kafka kafka-console-consumer \
  --topic test --bootstrap-server localhost:9092 --from-beginning

Biblioteka Pythonowa: pip install confluent-kafka

Więcej informacji: Apache Kafka — dokumentacja

Apache Spark

Apache Spark to silnik do rozproszonego przetwarzania danych, obsługujący zarówno tryb wsadowy (batch), jak i strumieniowy (streaming). Na zajęciach będziemy korzystać z PySpark — interfejsu Pythonowego do Sparka.

Instalacja PySpark:

pip install pyspark

Szybki test:

from pyspark.sql import SparkSession

spark = SparkSession.builder \
    .appName("Test") \
    .master("local[*]") \
    .getOrCreate()

df = spark.createDataFrame(
    [(1, "Anna", 28), (2, "Jan", 35), (3, "Ewa", 22)],
    ["id", "imie", "wiek"]
)

df.show()
spark.stop()

Na dalszych zajęciach będziemy korzystać ze Structured Streaming — modułu Sparka do przetwarzania danych strumieniowych, w tym integracji z Apache Kafka.

Więcej informacji: Apache Spark — dokumentacja