Datenmanipulation mit DataFrames

Einführung in PySpark

Ben Schmidt

Data Engineer

Umgang mit fehlenden Daten

  • Verwende .na.drop(), um Zeilen mit Nullwerten zu entfernen
# Zeilen mit Nullwerten entfernen
df_cleaned = df.na.drop()

# Nullwerte filtern df_cleaned = df.where(col("columnName").isNotNull())
  • Verwende .na.fill({"column": value), um Nullwerte durch einen bestimmten Wert zu ersetzen
# Nullwerte in der Spalte 'age' mit 0 füllen
df_filled = df.na.fill({"age": 0})
Einführung in PySpark

Spaltenoperationen

  • Verwende .withColumn(), um eine neue Spalte basierend auf Berechnungen oder vorhandenen Spalten hinzuzufügen
# Neue Spalte 'age_plus_5' erstellen
df = df.withColumn("age_plus_5", df["age"] + 5)
  • Verwende withColumnRenamed(), um Spalten umzubenennen
# Spalte 'age' in 'years' umbenennen
df = df.withColumnRenamed("age", "years")
  • Verwende drop(), um unnötige Spalten zu entfernen
# Spalte 'department' entfernen
df = df.drop("department")
Einführung in PySpark

Zeilenoperationen

  • Verwende .filter(), um Zeilen basierend auf bestimmten Bedingungen auszuwählen
# Zeilen filtern, bei denen das Gehalt über 50000 liegt
filtered_df = df.filter(df["salary"] > 50000)
  • Verwende .groupBy() und Aggregatfunktionen (z.B. .sum(), .avg()), um Daten zusammenzufassen
# Nach Abteilung gruppieren und Durchschnittsgehalt berechnen
grouped_df = df.groupBy("department").avg("salary")
Einführung in PySpark

Ergebnisse der Zeilenoperationen

  • Filtern

    +------+---+-----------------+
    |salary|age|      occupation |
    +------+---+-----------------+
    | 60000| 45|Exec-managerial  |
    | 70000| 35|Prof-specialty   |
    +------+---+-----------------+
    
  • GroupBy ` +----------+-----------+ |department|avg(salary)| +----------+-----------+ | HR| 80000.0| | IT| 70000.0| +----------+-----------+

`

Einführung in PySpark

Spickzettel

# Zeilen mit Nullwerten entfernen
df_cleaned = df.na.drop()

# Nullwerte in einer Spalte entfernen df_cleaned = df.where(col("columnName").isNotNull())
# Nullwerte in der Spalte 'age' mit 0 füllen df_filled = df.na.fill({"age": 0})
  • Verwende .withColumn(), um eine neue Spalte basierend auf Berechnungen oder vorhandenen Spalten hinzuzufügen. Syntax: .withColumn("new_col_name", "original transformation")

    # Neue Spalte 'age_plus_5' erstellen
    df = df.withColumn("age_plus_5", df["age"] + 5)
    
  • Verwende withColumnRenamed(), um Spalten umzubenennen Syntax: withColumnRenamed(alter Spaltenname,neuer Spaltenname`

# Spalte 'age' in 'years' umbenennen
df = df.withColumnRenamed("age", "years")
  • Verwende drop(), um unnötige Spalten zu entfernen Syntax: .drop(Spaltenname)
# Spalte 'department' entfernen
df = df.drop("department")
# Zeilen filtern, bei denen das Gehalt über 50000 liegt
filtered_df = df.filter(df["salary"] > 50000)
  • Verwende .groupBy() und Aggregatfunktionen (z.B. .sum(), .avg()), um Daten zusammenzufassen
# Nach Abteilung gruppieren und Durchschnittsgehalt berechnen
grouped_df = df.groupBy("department").avg("salary")
Einführung in PySpark

Lass uns üben!

Einführung in PySpark

Preparing Video For Download...