Lavorando con i dataflight Spark importati da Hive, a volte ho finito con diverse colonne che non ho bisogno. Supponendo che io non voglio filtrarli conSeleziona colonne specifiche in un dataframe PySpark per migliorare le prestazioni
df = SqlContext.sql('select cols from mytable')
e sto importando l'intera tabella con
df = SqlContext.table(mytable)
fa un select
e successiva cache
migliora l'utilizzo della memoria prestazioni/diminuzione, come
df = df.select('col_1', 'col_2', 'col_3')
df.cache()
df.count()
o è solo una perdita di tempo? Farò un sacco di operazioni e manipolazioni di dati sul df
, come avg
, withColumn
, ecc
La cache aiuta molto, quindi aumenta le prestazioni. –
Ma vale la pena di fare una selezione in anticipo? – Ivan
Sì, se non hai bisogno di altre colonne nei seguenti passaggi - così avrai solo bisogno di colonne nella cache – MaxU