Spark запускает фильтры на БД, а не работает на данных - PullRequest
0 голосов
/ 01 марта 2020

Поскольку я новичок ie в Спарке, может быть, я что-то упускаю здесь.

Я использую PySpark для получения кадра данных с mon go и выполняю некоторую фильтрацию. когда я запускаю эту запись на sayaround 5000, все в порядке, но когда я запускаю то же самое, скажем, около 1,70000 записей, вместо фильтрации записей на фрейме данных, он запускает фильтрацию на mongodb, что делает его слишком медленным.

Я что-то здесь упускаю, может быть какая-то конфигурация.

dataframe = df1.where(col("") != '')
                            .filter((col("")
                            .isin(df2["id"))
                            & (col("create_date") >= lit(start_date))
                            & (col("create_date") <= lit(end_date)))

У меня есть два кадра данных, где второй кадр данных повторяется 13k раз, чтобы получить идентификатор каждой записи и сопоставить его с первым dataframe (df1), чтобы я мог видеть запросы, запускаемые в логах mongdb ...

Пожалуйста, помогите.

1 Ответ

0 голосов
/ 04 марта 2020

Решено ...

Я не создавал индексы в коллекциях MongoDB, из-за чего спарк отправлял запросы и не мог кэшировать.

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