DataFrame-kolombewerkingen

Data opschonen met PySpark

Mike Metzger

Data Engineering Consultant

DataFrame-opfrisser

DataFrames:

  • Bestaan uit rijen en kolommen
  • Immutabel
  • Pas transformaties toe om data te wijzigen
# Geef rijen terug waar name met "M" begint 
voter_df.filter(voter_df.name.like('M%'))

# Geef alleen name en position terug voters = voter_df.select('name', 'position')
Data opschonen met PySpark

Veelvoorkomende DataFrame-transformaties

  • Filter / Where
    voter_df.filter(voter_df.date > '1/1/2019') # of voter_df.where(...)
    
  • Select
    voter_df.select(voter_df.name)
    
  • withColumn
    voter_df.withColumn('year', voter_df.date.year)
    
  • drop
    voter_df.drop('unused_column')
    
Data opschonen met PySpark

Data filteren

  • Verwijder nulls
  • Verwijder vreemde waarden
  • Splits data uit gecombineerde bronnen
  • Negeren met ~
    voter_df.filter(voter_df['name'].isNotNull())
    voter_df.filter(voter_df.date.year > 1800)
    voter_df.where(voter_df['_c0'].contains('VOTE'))
    voter_df.where(~ voter_df._c1.isNull())
    
Data opschonen met PySpark

Stringtransformaties per kolom

  • Te vinden in pyspark.sql.functions
    import pyspark.sql.functions as F
    
  • Per kolom als transformatie toegepast
    voter_df.withColumn('upper', F.upper('name'))
    
  • Kan tussenkolommen maken
    voter_df.withColumn('splits', F.split('name', ' '))
    
  • Kan casten naar andere types
    voter_df.withColumn('year', voter_df['_c4'].cast(IntegerType()))
    
Data opschonen met PySpark

ArrayType()-kolomfuncties

Diverse hulpfuncties/transformaties voor ArrayType()

.size(<column>) - geeft de lengte van een ArrayType()-kolom

.getItem(<index>) - haalt het item op op de gegeven index van een lijstkolom

Data opschonen met PySpark

Laten we oefenen!

Data opschonen met PySpark

Preparing Video For Download...