2016-05-24 3 views
2

При выполнении задания PySpark на сервере dataproc нравится этаPySpark печати на консоль

gcloud --project <project_name> dataproc jobs submit pyspark --cluster <cluster_name> <python_script> 

мои заявления печати не появляется в моем терминале.

Есть ли способ вывода данных на терминал в PySpark при выполнении заданий в облаке?

Редактировать: Я хотел бы распечатать/записать информацию из моей трансформации. Например:

def print_funct(l): 
    print(l) 
    return l 

rddData.map(lambda l: print_funct(l)).collect() 

Если печатать каждую строку данных в РДУ rddData.

Выполнение некоторых рытье, я нашел это answer for logging, однако, тестирование обеспечивает мне результаты this question, ответ на который утверждает, что эта регистрация не представляется возможным в рамках трансформации

+0

Когда вы говорите заявления печати, вы имеете в виду изнутри программы драйвера python? Или внутри искрообразования? Вся информация, полученная от драйвера, который вы увидите, запуская искру-submit на главной виртуальной машине, будет напечатана gcloud. С другой стороны, вывод из преобразований выполняется на другой виртуальной машине и не печатается. Если можно, добавьте пример. – tix

+0

@tix: Я предполагаю, что мой оператор печати находится внутри искрового преобразования. Я предполагаю, что вывод на печать отправляется каждому vm, но не для того, чтобы справляться и, следовательно, не со мной? – Roman

ответ

4

печати или лесозаготовительной внутри преобразования закончится в журналах исполнителя Spark, доступ к которым можно получить через AppMaster вашего приложения или HistoryServer через YARN ResourceManager Web UI.

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

Если вы выполняете много отладки печати, вы можете быстрее найти ее в своем главном узле и использовать pyspark REPL или IPython для экспериментов с вашим кодом. Это также позволит вам использовать локальный флаг --master, который заставит ваши заявления печати появляться в стандартном режиме.

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