Я загружаю файлы с большими размерами паркета, но вам нужно всего несколько столбцов. Мой текущий код выглядит следующим образом:Как более эффективно загружать файлы паркета в 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))
Моя ментальная модель того, что происходит в том, что она загружается во всех данных, а затем выбрасывая столбцы я не хочу. Я бы предпочел, чтобы он даже не читал в этих колонках, и из того, что я понимаю о паркете, кажется, возможно.
Итак, есть два вопроса:
- Является ли моя ментальная модель не так? Или искровый компилятор достаточно умный, чтобы читать только в столбцах a, b и c в примере выше?
- Как я могу заставить
sqc.parquetFile()
читать данные более эффективно?
Я думаю, что ваши шансы получить только для чтения, необходимые столбцы будет выше, если вы '' map' _перед_ filter' – sds