Introduzione a PySpark
Ben Schmidt
Data Engineer
.na.drop() per rimuovere righe con valori nulli# Rimuovi righe con null df_cleaned = df.na.drop()# Filtra null df_cleaned = df.where(col("columnName").isNotNull())
.na.fill({"column": value) per sostituire i null con un valore specifico# Sostituisci null nella colonna age con 0
df_filled = df.na.fill({"age": 0})
.withColumn() per aggiungere una nuova colonna basata su calcoli o colonne esistenti# Crea una nuova colonna 'age_plus_5'
df = df.withColumn("age_plus_5", df["age"] + 5)
withColumnRenamed() per rinominare colonne# Rinomina la colonna 'age' in 'years'
df = df.withColumnRenamed("age", "years")
drop() per rimuovere colonne inutili# Rimuovi la colonna 'department'
df = df.drop("department")
.filter() per selezionare righe in base a condizioni specifiche# Filtra righe con salario maggiore di 50000
filtered_df = df.filter(df["salary"] > 50000)
.groupBy() e funzioni di aggregazione (es. .sum(), .avg()) per riassumere i dati# Raggruppa per dipartimento e calcola il salario medio
grouped_df = df.groupBy("department").avg("salary")
Filtraggio
+------+---+-----------------+
|salary|age| occupation |
+------+---+-----------------+
| 60000| 45|Exec-managerial |
| 70000| 35|Prof-specialty |
+------+---+-----------------+
GroupBy
`
+----------+-----------+
|department|avg(salary)|
+----------+-----------+
| HR| 80000.0|
| IT| 70000.0|
+----------+-----------+
`
# Rimuovi righe con null df_cleaned = df.na.drop()# Rimuovi null su una colonna df_cleaned = df.where(col("columnName").isNotNull())# Sostituisci null nella colonna age con 0 df_filled = df.na.fill({"age": 0})
Usa .withColumn() per aggiungere una nuova colonna basata su calcoli o colonne esistenti. Sintassi: .withColumn("new_col_name", "original transformation")
# Crea una nuova colonna 'age_plus_5'
df = df.withColumn("age_plus_5", df["age"] + 5)
Usa withColumnRenamed() per rinominare colonne
Sintassi: withColumnRenamed(old column name,new column name`
# Rinomina la colonna 'age' in 'years'
df = df.withColumnRenamed("age", "years")
drop() per rimuovere colonne inutili
Sintassi: .drop(column name)# Rimuovi la colonna 'department'
df = df.drop("department")
# Filtra righe con salario maggiore di 50000
filtered_df = df.filter(df["salary"] > 50000)
.groupBy() e funzioni di aggregazione (es. .sum(), .avg()) per riassumere i dati # Raggruppa per dipartimento e calcola il salario medio
grouped_df = df.groupBy("department").avg("salary")
Introduzione a PySpark