Operace se sloupci DataFrame

Cleaning Data with PySpark

Mike Metzger

Data Engineering Consultant

Opakování DataFrames

DataFrames:

  • Tvoří je řádky a sloupce
  • Jsou neměnné
  • Data se upravují pomocí transformačních operací
# Return rows where name starts with "M" 
voter_df.filter(voter_df.name.like('M%'))

# Return name and position only voters = voter_df.select('name', 'position')
Cleaning Data with PySpark

Běžné transformace DataFrames

  • Filter / Where
    voter_df.filter(voter_df.date > '1/1/2019') # or 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')
    
Cleaning Data with PySpark

Filtrování dat

  • Odstranění null hodnot
  • Odstranění chybných záznamů
  • Rozdělení dat z kombinovaných zdrojů
  • Negace pomocí ~
    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())
    
Cleaning Data with PySpark

Řetězcové transformace sloupců

  • Obsaženo v pyspark.sql.functions
    import pyspark.sql.functions as F
    
  • Aplikuje se na sloupce jako transformace
    voter_df.withColumn('upper', F.upper('name'))
    
  • Umožňuje vytvářet mezilehlé sloupce
    voter_df.withColumn('splits', F.split('name', ' '))
    
  • Umožňuje přetypování na jiné typy
    voter_df.withColumn('year', voter_df['_c4'].cast(IntegerType()))
    
Cleaning Data with PySpark

Funkce pro sloupce ArrayType()

Různé pomocné funkce a transformace pro práci s ArrayType()

.size(<column>) – vrátí délku sloupce arrayType()

.getItem(<index>) – načte konkrétní prvek na daném indexu sloupce seznamu.

Cleaning Data with PySpark

Pojďme procvičovat!

Cleaning Data with PySpark

Preparing Video For Download...