2016-06-09 3 views
0

Я использую PySpark для запуска некоторых симуляций с различными наборами данных, и я хотел бы сохранить весь вывод консоли (INFOS, WARNS и т. Д.) В текстовый файл в то есть путем объявления внутри кода текстового файла, который будет содержать выход журнала. Код будет просто запускать некоторые операции над исходным набором данных, и я планирую запустить код с помощью spark-sumbit.Сохранить журнал PySpark в текстовый файл

Это позволит мне сохранять отдельные журналы для отдельных симуляций, идея заключается в том, чтобы соответствовать имени файла журнала с именем входного набора данных.

Возможно ли это без изменения confs и других файлов Spark?

ответ

1

Если вы используете пряжи кластера вы могли бы получить от рубок,

yarn logs -applicationId <application ID> 

Если его локальный или клиент вы могли бы сделать,

spark-submit myapp.py 2> mylogfile 
+0

Нет, я не использую кластер пряжи , У меня есть Spark Context на 'local [*]'. Таким образом, я использую все ядра в своей машине как кластер. '' 'Хорошо в любом случае, хотя это позволяет мне только поймать трассировки Python. – Alessiox

+0

Вы также можете использовать' 2> 'и' &> 'для получения записей в stderr и stdout. – WoodChopper

+1

Большое спасибо WoodChopper. Хорошо поймал. Хотя (для полноты) я бы добавил ваш намек на '/ 2> & 1 | tee myLog.log'. Таким образом у меня есть и журнал на консоли и файл. Действительно, оба '2>' и '&>' подавляют вывод на терминале. – Alessiox

Смежные вопросы