Розширені операції з DataFrame

Вступ до PySpark

Ben Schmidt

Data Engineer

Join в PySpark

  • Об'єднуйте рядки з двох і більше DataFrame за спільними стовпцями
  • Типи join: inner, left, right та outer, як у SQL

  • Синтаксис: DataFrame1.join(DataFrame2, on="column", how="join_type")

# Об'єднання за стовпцем id за допомогою inner join
df_joined = df1.join(df2, on="id", how="inner")

# Об'єднання за стовпцями з різними назвами df_joined = df1.join(df2, df1.Id == df2.Name, "inner")
Вступ до PySpark

Операція Union

  • Об'єднує рядки з двох DataFrame з однаковою схемою

  • Синтаксис: DataFrame1.union(DataFrame2)

# Union двох DataFrame з ідентичними схемами
df_union = df1.union(df2)
Вступ до PySpark

Робота з масивами та мапами

Масиви (Arrays): зручно зберігати списки в стовпцях, синтаксис: ArrayType(StringType(),False)`

from pyspark.sql.functions import array, struct, lit

# Створення стовпця-масиву
df = df.withColumn("scores", array(lit(85), lit(90), lit(78)))

Мапи (Maps): пари ключ-значення, зручно для даних як у словнику, MapType(StringType(),StringType())

from pyspark.sql.types import StructField, StructType, StringType, MapType

schema = StructType([
    StructField('name', StringType(), True),
    StructField('properties', MapType(StringType(), StringType()), True)
])
Вступ до PySpark

Робота зі структурами (Structs)

  • Struct: створюйте вкладені структури в рядках. Синтаксис: StructType(Structfield, Datatype())
# Створення стовпця-структури
df = df.withColumn("name_struct", struct("first_name", "last_name"))

# Створення стовпця-структури df = df.withColumn("name_struct", struct("first_name", "last_name"))
Вступ до PySpark

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

Вступ до PySpark

Preparing Video For Download...