Einführung in PySpark
Ben Schmidt
Data Engineer
.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())
.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})
.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)
withColumnRenamed(), um Spalten umzubenennen# Spalte 'age' in 'years' umbenennen
df = df.withColumnRenamed("age", "years")
drop(), um unnötige Spalten zu entfernen# Spalte 'department' entfernen
df = df.drop("department")
.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)
.groupBy() und Aggregatfunktionen (z.B. .sum(), .avg()), um Daten zusammenzufassen# Nach Abteilung gruppieren und Durchschnittsgehalt berechnen
grouped_df = df.groupBy("department").avg("salary")
Filtern
+------+---+-----------------+
|salary|age| occupation |
+------+---+-----------------+
| 60000| 45|Exec-managerial |
| 70000| 35|Prof-specialty |
+------+---+-----------------+
GroupBy
`
+----------+-----------+
|department|avg(salary)|
+----------+-----------+
| HR| 80000.0|
| IT| 70000.0|
+----------+-----------+
`
# 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")
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)
.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