Sto caricando file di parquet ad alta dimensionalità ma ho bisogno solo di poche colonne. Il mio codice attuale assomiglia:Come caricare in modo efficiente file di Parquet in Spark (pySpark v1.2.0)
dat = sqc.parquetFile(path) \
.filter(lambda r: len(r.a)>0) \
.map(lambda r: (r.a, r.b, r.c))
Il mio modello mentale di ciò che sta accadendo è che si sta caricando tutti i dati, quindi buttare fuori le colonne che non voglio. Ovviamente preferirei che non legga nemmeno quelle colonne e da quello che capisco sul parquet sembra possibile.
Quindi ci sono due domande:
- è il mio modello mentale sbagliato? Oppure il compilatore di scintille è abbastanza intelligente da leggere solo nelle colonne a, b e c nell'esempio sopra?
- Come posso forzare
sqc.parquetFile()
a leggere i dati in modo più efficiente?
penso che le possibilità per ottenere leggere solo le colonne necessarie sarà più alto se si 'map' _prima_' filter' – sds