Mehr zu Spark DataFrames

Einführung in PySpark

Benjamin Schmidt

Data Engineer

DataFrames aus verschiedenen Datenquellen erstellen

  • CSV-Dateien: Häufig für strukturierte, getrennte Daten
  • JSON-Dateien: Halbstrukturiertes, hierarchisches Datenformat
  • Parquet-Dateien: Optimiert für Speicherung und Abfragen, oft in der Datenverarbeitung genutzt
  • Beispiel:
    spark.read.csv("path/to/file.csv")
    
  • Beispiel:
    spark.read.json("path/to/file.json")
    
  • Beispiel:
    spark.read.parquet("path/to/file.parquet")
    
1 https://spark.apache.org/docs/latest/api/python/reference/pyspark.pandas/api/pyspark.pandas.read_csv
Einführung in PySpark

Schemaableitung und manuelle Schema-Definition

  • Spark kann Schemas aus Daten ableiten mit inferSchema=True

  • Schema manuell definieren für bessere Kontrolle - nützlich bei festen Datenstrukturen

Schema im großen Maßstab

Einführung in PySpark

Datentypen in PySpark DataFrames

  • IntegerType: Ganze Zahlen
    • Z.B., 1, 3478, -1890456
  • LongType: Größere ganze Zahlen
    • Z.B., 8-Byte-Zahlen, 922334775806
  • FloatType und DoubleType: Gleitkommazahlen für Dezimalwerte
    • Z.B., 3.14159
  • StringType: Für Text oder Zeichenfolgen
    • Z.B., "Dies ist ein Beispiel für eine Zeichenfolge."
  • ...
Einführung in PySpark

Datentyp-Syntax für PySpark DataFrames

# Importiere die notwendigen Typen als Klassen
from pyspark.sql.types import (StructType,
                            StructField, IntegerType,
                            StringType, ArrayType)

# Erstelle das Schema
schema = StructType([
    StructField("id", IntegerType(), True),
    StructField("name", StringType(), True),
    StructField("scores", ArrayType(IntegerType()), True)
])

# Setze das Schema
df = spark.createDataFrame(data, schema=schema)
Einführung in PySpark

DataFrame-Operationen - Auswahl und Filterung

  • Nutze .select(), um bestimmte Spalten auszuwählen
  • Nutze .filter() oder .where(), um Zeilen nach Bedingungen zu filtern
  • Nutze .sort(), um nach Spalten zu sortieren
# Wähle und zeige nur die Spalten Name und Alter
df.select("name", "age").show()
# Filtere nach Alter > 30
df.filter(df["age"] > 30).show()
# Nutze Where, um einen bestimmten Wert zu filtern
df.where(df["age"] == 30).show()
# Nutze Sort, um nach Alter zu sortieren
df.sort("age", ascending=False).show()
Einführung in PySpark

Sortieren und fehlende Werte entfernen

  • Daten mit .sort() oder .orderBy() sortieren
  • Nutze na.drop(), um Zeilen mit Nullwerten zu entfernen
# Sortiere nach der Spalte Alter
df.sort("age", ascending=False).show()

# Fehlende Werte entfernen
df.na.drop().show()

Einführung in PySpark

Spickzettel

  • spark.read_json(): Daten aus JSON laden
  • spark.read.schema(): Schemas explizit definieren
  • .na.drop(): Zeilen mit fehlenden Werten entfernen
  • .select(), .filter(), .sort(), .orderBy(): Grundlegende Datenmanipulation
Einführung in PySpark

Lass uns üben!

Einführung in PySpark

Preparing Video For Download...