Erweiterte DataFrame-Operationen

Einführung in PySpark

Ben Schmidt

Data Engineer

Joins in PySpark

  • Zeilen aus mehreren DataFrames basierend auf gemeinsamen Spalten kombinieren
  • Arten von Joins: inner, left, right und outer, ähnlich wie SQL

  • Syntax: DataFrame1.join(DataFrame2, on="column", how="join_type")

# Join auf id-Spalte mit inner join
df_joined = df1.join(df2, on="id", how="inner")

# Join auf Spalten mit unterschiedlichen Namen df_joined = df1.join(df2, df1.Id == df2.Name, "inner")
Einführung in PySpark

Union-Operation

  • Kombiniert Zeilen aus zwei DataFrames mit demselben Schema

  • Syntax: DataFrame1.union(DataFrame2)

# Union von zwei DataFrames mit identischen Schemata
df_union = df1.union(df2)
Einführung in PySpark

Arbeiten mit Arrays und Maps

Arrays: Nützlich für Listen in Spalten, Syntax: ArrayType(StringType(),False)`

from pyspark.sql.functions import array, struct, lit

# Erstelle eine Array-Spalte
df = df.withColumn("scores", array(lit(85), lit(90), lit(78)))

Maps: Schlüssel-Wert-Paare, hilfreich für dictionary-ähnliche Daten, MapType(StringType(),StringType())

from pyspark.sql.types import StructField, StructType, StringType, MapType

schema = StructType([
    StructField('name', StringType(), True),
    StructField('properties', MapType(StringType(), StringType()), True)
])
Einführung in PySpark

Arbeiten mit Structs

  • Structs: Erstellen von verschachtelten Strukturen in Zeilen Syntax: StructType(Structfield, Datatype())
# Erstelle eine Struct-Spalte
df = df.withColumn("name_struct", struct("first_name", "last_name"))

# Erstelle eine Struct-Spalte df = df.withColumn("name_struct", struct("first_name", "last_name"))
Einführung in PySpark

Lass uns üben!

Einführung in PySpark

Preparing Video For Download...