Manipulasi data dengan DataFrames

Pengantar PySpark

Ben Schmidt

Data Engineer

Menangani data yang hilang

  • Gunakan .na.drop() untuk menghapus baris dengan nilai null
# Hapus baris dengan nilai null
df_cleaned = df.na.drop()

# Saring nilai null df_cleaned = df.where(col("columnName").isNotNull())
  • Gunakan .na.fill({"column": value}) untuk mengganti null dengan nilai tertentu
# Isi null di kolom usia dengan nilai 0
df_filled = df.na.fill({"age": 0})
Pengantar PySpark

Operasi kolom

  • Gunakan .withColumn() untuk menambah kolom baru berdasarkan perhitungan atau kolom yang ada
# Buat kolom baru 'age_plus_5'
df = df.withColumn("age_plus_5", df["age"] + 5)
  • Gunakan withColumnRenamed() untuk mengganti nama kolom
# Ganti nama kolom 'age' menjadi 'years'
df = df.withColumnRenamed("age", "years")
  • Gunakan drop() untuk menghapus kolom yang tidak diperlukan
# Hapus kolom 'department'
df = df.drop("department")
Pengantar PySpark

Operasi baris

  • Gunakan .filter() untuk memilih baris berdasarkan kondisi tertentu
# Saring baris di mana gaji lebih dari 50000
filtered_df = df.filter(df["salary"] > 50000)
  • Gunakan .groupBy() dan fungsi agregat (misalnya, .sum(), .avg()) untuk meringkas data
# Kelompokkan berdasarkan departemen dan hitung rata-rata gaji
grouped_df = df.groupBy("department").avg("salary")
Pengantar PySpark

Hasil Operasi Baris

  • Penyaringan

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

`

Pengantar PySpark

CheatSheet

# Hapus baris dengan nilai null
df_cleaned = df.na.drop()

# Hapus null pada kolom df_cleaned = df.where(col("columnName").isNotNull())
# Isi null di kolom usia dengan nilai 0 df_filled = df.na.fill({"age": 0})
  • Gunakan .withColumn() untuk menambah kolom baru berdasarkan perhitungan atau kolom yang ada. Sintaks: .withColumn("new_col_name", "original transformation")

    # Buat kolom baru 'age_plus_5'
    df = df.withColumn("age_plus_5", df["age"] + 5)
    
  • Gunakan withColumnRenamed() untuk mengganti nama kolom Sintaks: withColumnRenamed(old column name,new column name`

# Ganti nama kolom 'age' menjadi 'years'
df = df.withColumnRenamed("age", "years")
  • Gunakan drop() untuk menghapus kolom yang tidak diperlukan Sintaks: .drop(column name)
# Hapus kolom 'department'
df = df.drop("department")
# Saring baris di mana gaji lebih dari 50000
filtered_df = df.filter(df["salary"] > 50000)
  • Gunakan .groupBy() dan fungsi agregat (misalnya, .sum(), .avg()) untuk meringkas data
# Kelompokkan berdasarkan departemen dan hitung rata-rata gaji
grouped_df = df.groupBy("department").avg("salary")
Pengantar PySpark

Mari berlatih!

Pengantar PySpark

Preparing Video For Download...