[英]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.