【问题标题】:How can I catch the log output of pyspark foreachPartition?如何捕获 pyspark foreachPartition 的日志输出?
【发布时间】:2016-12-20 06:59:10
【问题描述】:

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))

我可以使用 spark-on-yarn 查看登录控制台

但是如果我使用 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 控制台中看到日志。

【问题讨论】:

    标签: python pyspark spark-streaming


    【解决方案1】:

    rdd.foreachRDD 在 driver 节点上运行,该节点向您的终端发送消息

    rdd.foreachPartition 在 worker 节点上运行,该节点向 worker 的终端发送消息,您看不到

    如果您想查看日志,只需将它们保存为文件

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-05-23
      • 2017-05-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-09
      • 2020-02-28
      • 2019-10-26
      相关资源
      最近更新 更多