Meer over Spark DataFrames

Introductie tot PySpark

Benjamin Schmidt

Data Engineer

DataFrames maken uit verschillende gegevensbronnen

  • CSV-bestanden: Gebruikelijk voor gestructureerde, gescheiden data
  • JSON-bestanden: Semi-gestructureerd, hiërarchisch dataformaat
  • Parquet-bestanden: Geoptimaliseerd voor opslag en query's, vaak gebruikt in data-engineering
  • Voorbeeld:
    spark.read.csv("path/to/file.csv")
    
  • Voorbeeld:
    spark.read.json("path/to/file.json")
    
  • Voorbeeld:
    spark.read.parquet("path/to/file.parquet")
    
1 https://spark.apache.org/docs/latest/api/python/reference/pyspark.pandas/api/pyspark.pandas.read_csv
Introductie tot PySpark

Schema-afleiding en handmatige schema-definitie

  • Spark kan schema's afleiden uit data met inferSchema=True

  • Definieer schema's handmatig voor meer controle - handig voor vaste datastructuren

Schema op schaal

Introductie tot PySpark

DataTypes in PySpark DataFrames

  • IntegerType: Gehele getallen
    • Bijv., 1, 3478, -1890456
  • LongType: Grotere gehele getallen
    • Bijv., 8-byte getekende getallen, 922334775806
  • FloatType en DoubleType: Vlottende-kommagetallen voor decimale waarden
    • Bijv., 3.14159
  • StringType: Gebruikt voor tekst of stringdata
    • Bijv., "Dit is een voorbeeld van een string."
  • ...
Introductie tot PySpark

DataTypes-syntaxis voor PySpark DataFrames

# Importeer de benodigde types als klassen
from pyspark.sql.types import (StructType,
                            StructField, IntegerType,
                            StringType, ArrayType)

# Bouw het schema
schema = StructType([
    StructField("id", IntegerType(), True),
    StructField("name", StringType(), True),
    StructField("scores", ArrayType(IntegerType()), True)
])

# Stel het schema in
df = spark.createDataFrame(data, schema=schema)
Introductie tot PySpark

DataFrame-bewerkingen - selectie en filtering

  • Gebruik .select() om specifieke kolommen te kiezen
  • Gebruik .filter() of .where() om rijen te filteren op basis van voorwaarden
  • Gebruik .sort() om te sorteren op kolommen
# Selecteer en toon alleen de kolommen naam en leeftijd
df.select("name", "age").show()
# Filter op leeftijd > 30
df.filter(df["age"] > 30).show()
# Gebruik Where om te filteren op een specifieke waarde
df.where(df["age"] == 30).show()
# Gebruik Sort om te sorteren op leeftijd
df.sort("age", ascending=False).show()
Introductie tot PySpark

Sorteren en ontbrekende waarden verwijderen

  • Sorteer data met .sort() of .orderBy()
  • Gebruik na.drop() om rijen met null-waarden te verwijderen
# Sorteer op de kolom leeftijd
df.sort("age", ascending=False).show()

# Verwijder ontbrekende waarden
df.na.drop().show()

Introductie tot PySpark

Spiekbriefje

  • spark.read_json(): Laad data uit JSON
  • spark.read.schema(): Definieer schema's expliciet
  • .na.drop(): Verwijder rijen met ontbrekende waarden
  • .select(), .filter(), .sort(), .orderBy(): Basisfuncties voor datamanipulatie
Introductie tot PySpark

Laten we oefenen!

Introductie tot PySpark

Preparing Video For Download...