Как улучшить этот Spark трубопровод? - PullRequest
0 голосов
/ 14 мая 2018

Предположим, я присоединяюсь к нескольким Spark фреймам данных:

abcd = a.join(b, 'bid', 'inner')\
        .join(c, 'cid', 'inner')\
        .join(d, 'did', 'left')\
        .distinct() 
abcd.head() # takes 5-7 min.

Вызов head запускает конвейерное выполнение, которое занимает 5-7 минут. Это как-то связано с этими joins? Как бы вы сделали трубопровод быстрее?

1 Ответ

0 голосов
/ 14 мая 2018

head() возвращает только одну запись. Вам не нужно distinct(), если вам нужна только первая запись. Это может спасти вас от дорогой случайности.

Однако, учитывая, что у вас есть объединения выше, и полученный набор данных не отсортирован - нет никаких гарантий, какая запись будет возвращена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...