Маніпулювання даними з DataFrame

Вступ до PySpark

Ben Schmidt

Data Engineer

Обробка пропущених даних

  • Використовуйте .na.drop(), щоб прибрати рядки з null-значеннями
# Видалити рядки з будь-якими null
df_cleaned = df.na.drop()

# Відфільтрувати null-значення df_cleaned = df.where(col("columnName").isNotNull())
  • Використовуйте .na.fill({"column": value), щоб замінити null на вказане значення
# Заповнити null у стовпці age значенням 0
df_filled = df.na.fill({"age": 0})
Вступ до PySpark

Операції зі стовпцями

  • Використовуйте .withColumn(), щоб додати новий стовпець на основі обчислень або наявних стовпців
# Створити новий стовпець 'age_plus_5'
df = df.withColumn("age_plus_5", df["age"] + 5)
  • Використовуйте withColumnRenamed(), щоб перейменувати стовпці
# Перейменувати стовпець 'age' на 'years'
df = df.withColumnRenamed("age", "years")
  • Використовуйте drop(), щоб видалити зайві стовпці
# Видалити стовпець 'department'
df = df.drop("department")
Вступ до PySpark

Операції з рядками

  • Використовуйте .filter(), щоб вибрати рядки за умовами
# Вибрати рядки, де salary більше за 50000
filtered_df = df.filter(df["salary"] > 50000)
  • Використовуйте .groupBy() та агрегатні функції (напр., .sum(), .avg()), щоб підсумувати дані
# Згрупувати за department і обчислити середню зарплату
grouped_df = df.groupBy("department").avg("salary")
Вступ до PySpark

Результати операцій з рядками

  • Фільтрування

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

`

Вступ до PySpark

Шпаргалка

# Видалити рядки з будь-якими null
df_cleaned = df.na.drop()

#Drop nulls on a column df_cleaned = df.where(col("columnName").isNotNull())
# Заповнити null у стовпці age значенням 0 df_filled = df.na.fill({"age": 0})
  • Використовуйте .withColumn(), щоб додати новий стовпець на основі обчислень або наявних стовпців. Синтаксис: .withColumn("new_col_name", "original transformation")

    # Створити новий стовпець 'age_plus_5'
    df = df.withColumn("age_plus_5", df["age"] + 5)
    
  • Використовуйте withColumnRenamed(), щоб перейменувати стовпці Синтаксис: withColumnRenamed(old column name,new column name`

# Перейменувати стовпець 'age' на 'years'
df = df.withColumnRenamed("age", "years")
  • Використовуйте drop(), щоб видалити зайві стовпці Синтаксис: .drop(column name)
# Видалити стовпець 'department'
df = df.drop("department")
# Вибрати рядки, де salary більше за 50000
filtered_df = df.filter(df["salary"] > 50000)
  • Використовуйте .groupBy() та агрегатні функції (напр., .sum(), .avg()), щоб підсумувати дані
# Згрупувати за department і обчислити середню зарплату
grouped_df = df.groupBy("department").avg("salary")
Вступ до PySpark

Давайте потренуємось!

Вступ до PySpark

Preparing Video For Download...