簡體   English   中英

如何捕獲pyspark foreachPartition的日志輸出?

[英]How can I catch the log output of pyspark foreachPartition?

pyspark

當我在foreachRdd方法中使用print()時,它起作用了!

def echo(data):
print data
....
lines = MQTTUtils.createStream(ssc, brokerUrl, topics)

topic_rdd = lines.map(lambda x: get_topic_rdd(x)).filter(lambda x: x[0]!= None)

topic_rdd.foreachRDD(lambda x: echo(x))

我可以在紗線控制台上查看登錄控制台

但是,如果我使用foreachPartition的方法,它將看不到任何print()日志。

topic_rdd = lines.map(lambda x: get_topic_rdd(x)).filter(lambda x: x[0]!= None)

topic_rdd.foreachRDD(lambda x: x.foreachPartition(lambda y: echo(y)))

如果我想查看日志,我需要輸入不同的分區來查看日志? 我可以在Single控制台中查看日志嗎,順便說一下,我可以在Scala中使用python看到Single控制台中的日志。

rdd.foreachRDD正在驅動程序節點上運行,該驅動程序將消息發送到您的終端

rdd.foreachPartition在工作程序節點上運行,該節點將消息發送到工作程序的終端,您看不到

如果您想查看日志,只需將其另存為文件

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM