Я хочу обработать ~ 500 ГБ данных , распределенных по 64 файлам JSON каждый, содержащий 5M записей . В основном, функция Map (Pyspark) на каждой из 300M записей.
Чтобы протестировать функцию карты PySpark, я настроил кластер Google Dataproc (1 мастер 5 рабочих для тестирования только одного файла JSON).
Какая лучшая практика здесь?
Должен ли я скопировать все файлы в главном узле (чтобы использовать распределенную файловую систему Hadoop в Dataproc) или будет одинаково эффективно, если я сохраню файлы в моем хранилище GCS и укажу местоположение файла в моем Pyspark?
Также мой код импортирует довольно много внешних модулей, которые я скопировал на мой мастер, и импорт отлично работает в мастере. Лучше всего скопировать его на все другие рабочие узлы, чтобы при запуске Pyspark на этих рабочих я не получал ошибку импорта.
Я прочитал несколько статей на облачном веб-сайте Google, но не получил четкого ответа, где хранить файлы.
Я могу вручную скопировать внешние модули на каждый из моих рабочих узлов, но не могу сделать это в работе, когда я буду иметь дело по крайней мере с 100 узлами.