Agregasi PySpark

Pengantar PySpark

Benjamin Schmidt

Data Engineer

Tinjauan agregasi SQL PySpark

  • Agregasi SQL umum bekerja dengan spark.sql()
    # Kuery agregasi SQL
    spark.sql("""
      SELECT Department, SUM(Salary) AS Total_Salary, AVG(Salary) AS Average_Salary
      FROM employees
      GROUP BY Department
    """).show()
    
Pengantar PySpark

Menggabungkan operasi DataFrame dan SQL

# Filter gaji di atas 3000
filtered_df = df.filter(df.Salary > 3000)

# Daftarkan DataFrame yang difilter sebagai tampilan
filtered_df.createOrReplaceTempView("filtered_employees")

# Agregasi menggunakan SQL pada tampilan yang difilter spark.sql(""" SELECT Department, COUNT(*) AS Employee_Count FROM filtered_employees GROUP BY Department """).show()
Pengantar PySpark

Penanganan tipe data dalam agregasi

# Contoh konversi tipe
data = [("HR", "3000"), ("IT", "4000"), ("Finance", "3500")]
columns = ["Department", "Salary"]
df = spark.createDataFrame(data, schema=columns)

# Ubah kolom Salary menjadi integer df = df.withColumn("Salary", df["Salary"].cast("int")) # Lakukan agregasi df.groupBy("Department").sum("Salary").show()
Pengantar PySpark

RDD untuk agregasi

# Contoh agregasi dengan RDD
rdd = df.rdd.map(lambda row: (row["Department"], row["Salary"]))

rdd_aggregated = rdd.reduceByKey(lambda x, y: x + y)
print(rdd_aggregated.collect())
Pengantar PySpark

Praktik terbaik untuk agregasi PySpark

  • Filter lebih awal: Kurangi ukuran data sebelum melakukan agregasi
  • Tangani tipe data: Pastikan data bersih dan bertipe benar
  • Hindari operasi yang menggunakan seluruh dataset: Minimalkan operasi seperti groupBy()
  • Pilih antarmuka yang tepat: Gunakan DataFrames untuk sebagian besar tugas karena optimasinya
  • Pantau kinerja: Gunakan explain() untuk memeriksa rencana eksekusi dan optimalkan sesuai kebutuhan
Pengantar PySpark

Poin penting

  • Agregasi SQL PySpark: Fungsi seperti SUM() dan AVERAGE() untuk merangkum data
  • DataFrames dan SQL: Menggabungkan kedua pendekatan untuk manipulasi data yang fleksibel
  • Penanganan Tipe Data: Mengatasi masalah ketidakcocokan tipe selama agregasi
  • RDD vs DataFrames: Memahami perbedaan dan memilih alat yang tepat
Pengantar PySpark

Mari berlatih!

Pengantar PySpark

Preparing Video For Download...