Einführung in PySpark DataFrames

Einführung in PySpark

Benjamin Schmidt

Data Engineer

Über DataFrames

  • DataFrames: Tabellarisches Format (Zeilen/Spalten)
  • Unterstützt SQL-ähnliche Operationen
  • Vergleichbar mit einem Pandas DataFrame oder einer SQL-TABELLE
  • Strukturierte Daten

Dataframes

Einführung in PySpark

DataFrames aus Dateien erstellen

# Erstelle ein DataFrame aus einer CSV
census_df = spark.read.csv('path/to/census.csv', header=True, inferSchema=True)
Einführung in PySpark

DataFrame anzeigen

# Zeige die ersten 5 Zeilen des DataFrames
census_df.show()


   age  education.num marital.status         occupation income
0   90              9        Widowed                  ?  <=50K
1   82              9        Widowed    Exec-managerial  <=50K
2   66             10        Widowed                  ?  <=50K
3   54              4       Divorced  Machine-op-inspct  <=50K
4   41             10      Separated     Prof-specialty  <=50K
Einführung in PySpark

DataFrame-Schema anzeigen

# Zeige das Schema
census_df.printSchema()

Ausgabe: root |-- age: integer (nullable = true) |-- education.num: integer (nullable = true) |-- marital.status: string (nullable = true) |-- occupation: string (nullable = true) |-- income: string (nullable = true)
Einführung in PySpark

Grundlegende Analysen mit PySpark DataFrames

# .count() gibt die Gesamtanzahl der Zeilen im DataFrame zurück
row_count = census_df.count()
print(f'Anzahl der Zeilen: {row_count}')
# groupby() ermöglicht SQL-ähnliche Aggregationen
census_df.groupBy('gender').agg({'salary_usd': 'avg'}).show()

Weitere Aggregatfunktionen sind:

  • sum()
  • min()
  • max()
Einführung in PySpark

Wichtige Funktionen für PySpark-Analysen

  • .select(): Wählt bestimmte Spalten aus dem DataFrame
  • .filter(): Filtert Zeilen basierend auf Bedingungen
  • .groupBy(): Gruppiert Zeilen nach Spalten
  • .agg(): Wendet Aggregatfunktionen auf gruppierte Daten an
Einführung in PySpark

Beispiel für wichtige Funktionen

# Mit filter und select können wir den DataFrame eingrenzen
filtered_census_df = census_df.filter(df['age'] > 50).select('age', 'occupation')
filtered_census_df.show()

Ausgabe +---+------------------+ |age| occupation | +---+------------------+ | 90| ?| | 82| Exec-managerial| | 66| ?| | 54| Machine-op-inspct| +---+------------------+
Einführung in PySpark

Lass uns üben!

Einführung in PySpark

Preparing Video For Download...