Partitionering och lat bearbetning

Datarensning med PySpark

Mike Metzger

Data Engineering Consultant

Partitionering

  • DataFrames delas upp i partitioner
  • Partitionsstorleken kan variera
  • Varje partition hanteras oberoende
Datarensning med PySpark

Lat bearbetning

  • Transformationer är lata
    • .withColumn(...)
    • .select(...)
  • Ingenting utförs förrän en åtgärd anropas
    • .count()
    • .write(...)
  • Transformationer kan ordnas om för bästa prestanda
  • Kan ibland ge oväntat beteende
Datarensning med PySpark

Lägga till ID:n

Vanliga ID-fält:

  • Vanliga i relationsdatabaser
  • Oftast ett heltal – stigande, sekventiellt och unikt
  • Inte särskilt parallellvänliga
id efternamn förnamn delstat
0 Smith John TX
1 Wilson A. IL
2 Adams Wendy OR
Datarensning med PySpark

Monotont ökande ID:n

pyspark.sql.functions.monotonically_increasing_id()

  • Heltal (64-bit), stigande värde, unikt
  • Inte nödvändigtvis sekventiellt (luckor förekommer)
  • Helt parallellt
id efternamn förnamn delstat
0 Smith John TX
134520871 Wilson A. IL
675824594 Adams Wendy OR
Datarensning med PySpark

Att tänka på

Kom ihåg att Spark är lat!

  • Kan ibland bli i fel ordning
  • Vid en join kan ID tilldelas efter att joinen utförts
  • Testa dina transformationer
Datarensning med PySpark

Nu kör vi en övning!

Datarensning med PySpark

Preparing Video For Download...