PySpark-Aggregationen

Einführung in PySpark

Benjamin Schmidt

Data Engineer

Übersicht über PySpark SQL-Aggregationen

  • Gängige SQL-Aggregationen funktionieren mit spark.sql()
    # SQL aggregation query
    spark.sql("""
      SELECT Department, SUM(Salary) AS Total_Salary, AVG(Salary) AS Average_Salary
      FROM employees
      GROUP BY Department
    """).show()
    
Einführung in PySpark

Kombination von DataFrame- und SQL-Operationen

# Filter salaries over 3000
filtered_df = df.filter(df.Salary > 3000)

# Register filtered DataFrame as a view
filtered_df.createOrReplaceTempView("filtered_employees")

# Aggregate using SQL on the filtered view spark.sql(""" SELECT Department, COUNT(*) AS Employee_Count FROM filtered_employees GROUP BY Department """).show()
Einführung in PySpark

Umgang mit Datentypen in Aggregationen

# Example of type casting
data = [("HR", "3000"), ("IT", "4000"), ("Finance", "3500")]
columns = ["Department", "Salary"]
df = spark.createDataFrame(data, schema=columns)

# Convert Salary column to integer df = df.withColumn("Salary", df["Salary"].cast("int")) # Perform aggregation df.groupBy("Department").sum("Salary").show()
Einführung in PySpark

RDDs für Aggregationen

# Example of aggregation with RDDs
rdd = df.rdd.map(lambda row: (row["Department"], row["Salary"]))

rdd_aggregated = rdd.reduceByKey(lambda x, y: x + y)
print(rdd_aggregated.collect())
Einführung in PySpark

Tipps für PySpark-Aggregationen

  • Frühzeitig filtern: Reduziere die Datenmenge, bevor du Aggregationen durchführst.
  • Umgang mit Datentypen: Stelle sicher, dass die Daten sauber und richtig eingegeben sind.
  • Vermeide Vorgänge, die den ganzen Datensatz nutzen: Minimiere Vorgänge wie groupBy()
  • Wähle die richtige Schnittstelle: Verwende für die meisten Aufgaben lieber DataFrames aufgrund deren Optimierungen.
  • Leistung überwachen: Benutze explain(), um den Ausführungsplan zu überprüfen und entsprechend zu optimieren.
Einführung in PySpark

Wichtigste Erkenntnisse

  • PySpark SQL-Aggregationen: Funktionen wie SUM() und AVERAGE() zum Zusammenfassen von Daten
  • DataFrame und SQL: Kombination beider Ansätze für eine flexible Datenbearbeitung
  • Umgang mit Datentypen: Probleme mit Typkonflikten bei Aggregationen lösen
  • RDDs vs. DataFrames: Die Vor- und Nachteile verstehen und das richtige Tool auswählen
Einführung in PySpark

Lass uns üben!

Einführung in PySpark

Preparing Video For Download...