Více o Spark DataFrames

Introduction to PySpark

Benjamin Schmidt

Data Engineer

Vytváření DataFrames z různých zdrojů dat

  • Soubory CSV: Běžný formát pro strukturovaná, oddělená data
  • Soubory JSON: Polostrukturovaný, hierarchický formát
  • Soubory Parquet: Optimalizovány pro ukládání a dotazování, často využívány v datovém inženýrství
  • Příklad:
    spark.read.csv("path/to/file.csv")
    
  • Příklad:
    spark.read.json("path/to/file.json")
    
  • Příklad:
    spark.read.parquet("path/to/file.parquet")
    
1 https://spark.apache.org/docs/latest/api/python/reference/pyspark.pandas/api/pyspark.pandas.read_csv
Introduction to PySpark

Odvozování a ruční definice schématu

  • Spark může odvodit schéma z dat pomocí inferSchema=True

  • Ruční definice schématu pro lepší kontrolu – vhodné pro pevné datové struktury

Schéma ve velkém měřítku

Introduction to PySpark

Datové typy v PySpark DataFrames

  • IntegerType: Celá čísla
    • Např. 1, 3478, -1890456
  • LongType: Větší celá čísla
    • Např. 8bajtová čísla se znaménkem, 922334775806
  • FloatType a DoubleType: Čísla s plovoucí desetinnou čárkou
    • Např. 3.14159
  • StringType: Textová data
    • Např. "This is an example of a string."
  • ...
Introduction to PySpark

Syntaxe datových typů pro 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)
Introduction to PySpark

Operace s DataFrame – výběr a filtrování

  • .select() – výběr konkrétních sloupců
  • .filter() nebo .where() – filtrování řádků podle podmínek
  • .sort() – řazení podle sloupců
# 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()
Introduction to PySpark

Řazení a odstraňování chybějících hodnot

  • Řazení dat pomocí .sort() nebo .orderBy()
  • Odebrání řádků s chybějícími hodnotami pomocí na.drop()
# Sort using the age column
df.sort("age", ascending=False).show()

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

Introduction to PySpark

Přehled funkcí

  • spark.read_json(): Načtení dat z JSON
  • spark.read.schema(): Explicitní definice schématu
  • .na.drop(): Odebrání řádků s chybějícími hodnotami
  • .select(), .filter(), .sort(), .orderBy(): Základní funkce pro manipulaci s daty
Introduction to PySpark

Pojďme procvičovat!

Introduction to PySpark

Preparing Video For Download...