Mer om Spark DataFrames

Introduktion till PySpark

Benjamin Schmidt

Data Engineer

Skapa DataFrames från olika datakällor

  • CSV-filer: Vanliga för strukturerad, avgränsad data
  • JSON-filer: Semistrukturerat, hierarkiskt dataformat
  • Parquet-filer: Optimerade för lagring och frågor, ofta använda inom datateknik
  • Exempel:
    spark.read.csv("path/to/file.csv")
    
  • Exempel:
    spark.read.json("path/to/file.json")
    
  • Exempel:
    spark.read.parquet("path/to/file.parquet")
    
1 https://spark.apache.org/docs/latest/api/python/reference/pyspark.pandas/api/pyspark.pandas.read_csv
Introduktion till PySpark

Schemahärledning och manuell schemadefinition

  • Spark kan härleda scheman från data med inferSchema=True

  • Definiera schema manuellt för bättre kontroll – användbart för fasta datastrukturer

Schema i stor skala

Introduktion till PySpark

Datatyper i PySpark DataFrames

  • IntegerType: Heltal
    • T.ex. 1, 3478, -1890456
  • LongType: Större heltal
    • T.ex. 8-byte signerade tal, 922334775806
  • FloatType och DoubleType: Flyttal för decimalvärden
    • T.ex. 3.14159
  • StringType: Används för text eller strängdata
    • T.ex. "This is an example of a string."
  • ...
Introduktion till PySpark

Syntax för datatyper i PySpark DataFrames

# Import the necessary types as classes
from pyspark.sql.types import (StructType,
                            StructField, IntegerType,
                            StringType, ArrayType)

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

# Set the schema
df = spark.createDataFrame(data, schema=schema)
Introduktion till PySpark

DataFrame-operationer – urval och filtrering

  • Använd .select() för att välja specifika kolumner
  • Använd .filter() eller .where() för att filtrera rader baserat på villkor
  • Använd .sort() för att sortera efter en eller flera kolumner
# Select and show only the name and age columns
df.select("name", "age").show()
# Filter on age > 30
df.filter(df["age"] > 30).show()
# Use Where to filter match a specific value
df.where(df["age"] == 30).show()
# Use Sort to sort on age
df.sort("age", ascending=False).show()
Introduktion till PySpark

Sortering och borttagning av saknade värden

  • Sortera data med .sort() eller .orderBy()
  • Använd na.drop() för att ta bort rader med null-värden
# Sort using the age column
df.sort("age", ascending=False).show()

# Drop missing values
df.na.drop().show()

Introduktion till PySpark

Fusklapp

  • spark.read_json(): Läs in data från JSON
  • spark.read.schema(): Definiera scheman explicit
  • .na.drop(): Ta bort rader med saknade värden
  • .select(), .filter(), .sort(), .orderBy(): Grundläggande funktioner för datamanipulering
Introduktion till PySpark

Nu kör vi en övning!

Introduktion till PySpark

Preparing Video For Download...