Ładowanie w plikach parkietu wielowymiarowego, ale potrzebuję tylko kilku kolumn. Mój obecny kod wygląda następująco:Jak wydajniej ładować pliki parkietu w 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))
mój mentalny model tego, co się dzieje jest to, że w załadunku wszystkich danych, a następnie wyrzucając kolumny nie chcę. Oczywiście wolałbym nie czytać w tych kolumnach, a z tego, co rozumiem, o parkiecie wydaje się to możliwe.
więc istnieją dwa pytania:
- Czy mój model mentalny źle? Czy jest to kompilator iskrowy wystarczająco inteligentny, aby czytać tylko w kolumnach a, b i c w powyższym przykładzie?
- Jak zmusić
sqc.parquetFile()
do bardziej wydajnego odczytu danych?
myślę szanse, aby uzyskać potrzebne tylko do odczytu kolumn będzie wyższa, jeśli '' filter' map' _before_ – sds